Easyelectronics.ru

Электроника для всех
Текущее время: 15 авг 2022, 05:29

Часовой пояс: UTC + 5 часов




Начать новую тему Ответить на тему  [ Сообщений: 77 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 15:34 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1487
sdv_cyborg писал(а):
Нужно это потому,что эта функция вызвывается с частотой 10 кГц в realtime цикле, и в случае с массивом указателей на фунции нам сперва надо было бы извлечь из класса индекс,по которому обращаться к массиву,затем из массива извлечь указатель, затем перейти по нему

И это ради экономии десятка тактов?! У тебя ЦП загружен на 99%?

Ещё ни один человек, говоривший мне о подобном замедлении, не мог назвать загрузку ЦП или даже процент использования времени между двумя прерываниями. Это так, наблюдение из жизни.

Вот передо мной STM32F411. У него тактова 100МГц, поэтому при частоте прерываний 10кГц между двумя прерываниями будет 10000 тактов ЦП. И что на этом фоне 10 тактов на вызов виртуального метода? По-моему, очень немного за удобства, которые дают виртуальные методы.

Если сопоставить стоимость электродвигателя и твоей зарплаты со стоимостью МК, то проще взять МК пошустрее и не заниматься интеллектуальным онанизмом, выкраивая 10 тактов. Будь 1000 тактов, тогда игра стоила бы свеч, а так...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 16:18 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 3082
Откуда: Санкт-Петербург
cheblin, так ведь запросы клиентов известны? Можно ж статистику собрать, сколько из них кодогенерит для C, и по результатам решить, стоит ли от них отказываться.

Хотя, честно говоря, не понимаю проблемы. Если бы речь шла о написании на C руками – да, тут понятно, крестики могут сильно облегчить жизнь. Но откуда сложности с кодогенерацией?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 16:31 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 771
tonyk писал(а):
sdv_cyborg писал(а):
Нужно это потому,что эта функция вызвывается с частотой 10 кГц в realtime цикле, и в случае с массивом указателей на фунции нам сперва надо было бы извлечь из класса индекс,по которому обращаться к массиву,затем из массива извлечь указатель, затем перейти по нему

И это ради экономии десятка тактов?! У тебя ЦП загружен на 99%?

Ещё ни один человек, говоривший мне о подобном замедлении, не мог назвать загрузку ЦП или даже процент использования времени между двумя прерываниями. Это так, наблюдение из жизни.

Вот передо мной STM32F411. У него тактова 100МГц, поэтому при частоте прерываний 10кГц между двумя прерываниями будет 10000 тактов ЦП. И что на этом фоне 10 тактов на вызов виртуального метода? По-моему, очень немного за удобства, которые дают виртуальные методы.

Если сопоставить стоимость электродвигателя и твоей зарплаты со стоимостью МК, то проще взять МК пошустрее и не заниматься интеллектуальным онанизмом, выкраивая 10 тактов. Будь 1000 тактов, тогда игра стоила бы свеч, а так...



Надо понимать, что там не один-единственный ШИМ. Во-первых, в этом же цикле три инвертора и, соответственно, три класса ШИМ, в каждом из которых производится расчет итоговой скважности с учетом реверса и проверка защит. Во-вторых, кроме ШИМ, там также контуры управления по положению всеми тремя двигателями, довольно развесистые. И кроме того, там же обработка данных с датчиков положения и тока, а также мониторинг аварийных ситуаций и командоаппарат, вычисляющий задания для систем управления приводами. Суммарная загруженность цикла составляла около 70 процентов на ARM с тактовой частотой 100 МГц. Выбрать другой МК было проблематично на тот момент.
P.S. И да, по поводу и без бросаться словами про онанизм и заглядывать другим в карман на предмет того, какая и у кого зарплата как-то не слишком прилично. Я понимаю, что вы видимо старше и много опытнее меня, но это не дает вам права безосновательно размахивать руками и орать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 17:00 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4981
Откуда: Китай, Пекин
Цитата:
Если бы речь шла о написании на C руками – да

так сам кодогенератор ручками пишется, и потом сопровождать нужно.

да и задолбало биться об ограниченность си. ради чего все эти "страдания". так и нет ответа.

просто чтоб было? лучше уж на сферический V кодогенератор потратиться очень уж оно мне нравится.

в старой версии проекта, Си был хорош тем, что либа на нем выполняла значительную часть разбора протокола.
и кроме самого Си, её подключал и под С++ и под Rust. удобно.
однако пользователи Rust были этим очень недовольны. не достаточно безопасно.

однажды точно также отказался от кодогенерации в JavaScript в пользу TypeScript и время показало правильность этого шага.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 18:59 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1487
sdv_cyborg писал(а):
P.S. И да, по поводу и без бросаться словами про онанизм и заглядывать другим в карман на предмет того, какая и у кого зарплата как-то не слишком прилично. Я понимаю, что вы видимо старше и много опытнее меня, но это не дает вам права безосновательно размахивать руками и орать.

О как. Я никому не заглядываю в карман, считая чьи-то деньги, а просто предложил сопоставить стоимость более мощного МК со стоимостью оборудования, затрат времени и усилий на написание ПО. По-моему, проще взять МК на 100 рублей дороже, чем тратить уйму времени на написание и отладку глубоко оптимизированного, но головоломного кода. Ну будет у тебя загрузка не 70%, а 80%, и что, всё сломается? Скорей всего, нет. Ну выиграл ты 10% в быстродействии, и чего добился? Потешил своё самолюбие? В какой-то книжке по программированию попалась очень мудрая мысль, что корень всех проблем программиста кроется в преждевременной оптимизации. И как назвать кучу усилий ради получения собственного удовольствия без практической пользы для дела? Какой смысл убиваться ради выигрыша в 10%? Вот именно так, как я и назвал. Кроме твоей программы в МК больше не будет других программ, то есть ты никому не помешаешь, потратив на себя эти 10%.

P. S. Судя по твоей обидке на мои слова, ты парень грамотный, но тебе оооочень не нравится твоя зарплата. Ты считаешь себя недооценённым, потому тебя и зацепили мои слова. Смени работу на более оплачиваемую и сразу успокоишься по поводу того, что я сказал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 19:47 
Старожил

Зарегистрирован: 22 июн 2010, 21:53
Сообщения: 1295
Откуда: Brussels
sdv_cyborg, не надо так сразу.... это же не вопрос именно размера зарплаты.
Оптимизация - вопрос экономики:
Предположим код соптимизировали, и конечное устройство стало на 5 баксов дешевле. Инженер (обычно уровня senjor, а кто еще будет оптимизацией заниматься) потратил на это ну, пусть, 3 дня, и еще тестировщики (они дешевле) еще 2 дня дополнительно тесты гоняли. И инженер и тестировщики стоят компании денег (и зарплата там процентов 20-30 не более).
Вопрос: сможем продать столько дополнительных готовых устройств, что бы покрыть эти расходы? (за время до конца жизненного цикла конкретной ревизии оптимизированного модуля). Если считаем что да, то молодцы - надо делать.

НО:

Второй аспект - для дорогого конечного устройства (те самые электромоторы, мощные - а значит дорогие) невыгодно оптимизировать копеечный модуль - если есть возможность продавать больше - нужно просто продпвать больше, а усилия своих инженеров потратить на новые предложения (инновации). Т.о. если внутри одной структуры разрабатывают модули сильно разные по цене - оптимизировать дешевые экономической мотивации нет. Эта одна из основных причин почему компании отдают что-то на outsource (или закупают готовые специализированные модули). У такого внешнего поставщика за счет специализации и объемов есть мотивация к оптимизации по производительности а, значит и по цене - выйдет тупо дешевле.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 20:05 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 771
//Mt писал(а):
sdv_cyborg, не надо так сразу.... это же не вопрос именно размера зарплаты.
Оптимизация - вопрос экономики:
Предположим код соптимизировали, и конечное устройство стало на 5 баксов дешевле. Инженер (обычно уровня senjor, а кто еще будет оптимизацией заниматься) потратил на это ну, пусть, 3 дня, и еще тестировщики (они дешевле) еще 2 дня дополнительно тесты гоняли. И инженер и тестировщики стоят компании денег (и зарплата там процентов 20-30 не более).
Вопрос: сможем продать столько дополнительных готовых устройств, что бы покрыть эти расходы? (за время до конца жизненного цикла конкретной ревизии оптимизированного модуля). Если считаем что да, то молодцы - надо делать.

НО:

Второй аспект - для дорогого конечного устройства (те самые электромоторы, мощные - а значит дорогие) невыгодно оптимизировать копеечный модуль - если есть возможность продавать больше - нужно просто продпвать больше, а усилия своих инженеров потратить на новые предложения (инновации). Т.о. если внутри одной структуры разрабатывают модули сильно разные по цене - оптимизировать дешевые экономической мотивации нет. Эта одна из основных причин почему компании отдают что-то на outsource (или закупают готовые специализированные модули). У такого внешнего поставщика за счет специализации и объемов есть мотивация к оптимизации по производительности а, значит и по цене - выйдет тупо дешевле.



Тут как раз ситуация была такая, что проще было соптимизировать, по сути заменить микроконтроллер на более производительный возможности не было. Не буду вдаваться в тему того, почему так получилось, скажем так: нам в отдел принесли железку и сказали, что без вариантов должно работать на ней. Пришлось повыкручиваться немного, чтобы хватило ресурсов на будущее. Да и тем более цена вопроса была лишь в том, чтобы сделать структуру вида:

Show такого вида


Ну и горсть оберток для нее, в том числе инициализаторов, которые автоматически по enum'у инвертора заполняют все поля, в том числе и колбек внутри структуры. Так-то весьма типовое решение, а если функция инита инлайновая, а объявление структуры и типа драйвера, описанного enum'ом статические, то компилятор все это весьма хорошо оптимизирует.

Что касается целевого применения - да, это весьма дорогие машины, и этот контроллер с приводами - лишь малая его часть. Тем не менее, все стабильно работает уже несколько лет безо всяких нареканий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 22:34 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1487
//Mt писал(а):
Оптимизация - вопрос экономики.....

Я к посту уважаемого //Mt могу только добавить от себя благодарность за его высказывание. Всё точно так и есть.
sdv_cyborg писал(а):
Что касается целевого применения - да, это весьма дорогие машины, и этот контроллер с приводами - лишь малая его часть. Тем не менее, все стабильно работает уже несколько лет безо всяких нареканий.

Вот ты сам и подтвердил, что я тебе говорил: и парень ты грамотный, и сделал всё правильно. Просто с возрастом будешь мыслить ленивей и рациональней. Сначала сделаешь чтобы работало, потом проверишь, что есть запас по быстродействию процентов 20%, а потом... оставишь как есть, ибо
//Mt писал(а):
усилия своих инженеров потратить на новые предложения (инновации)

Золотые слова!

Я тут с одним человеком общался... Он эту же задачу, что и у меня, написал на Ассемблере. Потратил год на переписывание с С на Ассемблере. Скорость выше, примерно, раза в 3-5, чем у меня без оптимизаций на С++. За этот год STM выпустила линейку Н7, которая быстрей F7 раза в 2, то есть эффект от ускорение, полученное от переписывание на Ассемблере снижен. А самое смешное (грустное?) состоит в том, что на задачах, которые решает с помощью своего ПО этот человек, даже F103 обеспечивает, примерно, десятикратный(!) запас быстродействия. ...Вот и я не понимаю, нафиг он это сделал. Доказал, что у него самое быстродействуеющее ПО? Безусловно. Но я сторонник другого подхода:
//Mt писал(а):
усилия своих инженеров потратить на новые предложения (инновации)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 16 июл 2021, 23:07 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 771
tonyk писал(а):
Просто с возрастом будешь мыслить ленивей и рациональней. Сначала сделаешь чтобы работало, потом проверишь, что есть запас по быстродействию процентов 20%, а потом... оставишь как есть


Девиз половины отечественных шаражек, которые ничего путного не производят годами. И к сожалению, до

Цитата:
усилия своих инженеров потратить на новые предложения (инновации)


в них не доходит, потому что все там слишком опытные и ленивые, чтобы думать. Плавали, знаем...
Это бесплодный спор, свои аргументы я привел, и судя по риторике - явно не вам меня учить. Есть учителя и получше. За сим откланяюсь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 17 июл 2021, 21:46 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1487
Н-да-а-а-а, sdv_cyborg, не везёт тебе в жизни...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 18 июл 2021, 00:19 
Старожил

Зарегистрирован: 22 июн 2010, 21:53
Сообщения: 1295
Откуда: Brussels
Но ведь, sdv_cyborg, прав насчет шарашек.... Оптимизация вопросом экономики становится там, где есть экономика. А где нет - там шарашкина контора.
Нужно принимать этот простой факт и стремится туда ... куда лежит душа. Самому работать с полной отдачей можно где угодно. Но понимать нужно не только свою персональную работу, но и свою индустрию и экономику в целом (хотя бы в каком-то объеме).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 18 июл 2021, 00:41 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 771
//Mt писал(а):
Но ведь, sdv_cyborg, прав насчет шарашек.... Оптимизация вопросом экономики становится там, где есть экономика. А где нет - там шарашкина контора.
Нужно принимать этот простой факт и стремится туда ... куда лежит душа. Самому работать с полной отдачей можно где угодно. Но понимать нужно не только свою персональную работу, но и свою индустрию и экономику в целом (хотя бы в каком-то объеме).


С этим трудно не согласиться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 18 июл 2021, 02:30 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 3082
Откуда: Санкт-Петербург
tonyk писал(а):
Я тут с одним человеком общался... Он эту же задачу, что и у меня, написал на Ассемблере. Потратил год на переписывание с С на Ассемблере. Скорость выше, примерно, раза в 3-5, чем у меня без оптимизаций на С++.

Что – неужели ему надо было переписывать всё, а не несколько процентов кода? Не верится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 18 июл 2021, 02:50 
Старожил

Зарегистрирован: 22 июн 2010, 21:53
Сообщения: 1295
Откуда: Brussels
aamonster писал(а):
tonyk писал(а):
Я тут с одним человеком общался... Он эту же задачу, что и у меня, написал на Ассемблере. Потратил год на переписывание с С на Ассемблере. Скорость выше, примерно, раза в 3-5, чем у меня без оптимизаций на С++.

Что – неужели ему надо было переписывать всё, а не несколько процентов кода? Не верится.

Интереснее, кто же согласился ему этот год оплачивать?

Год ждать результата, причем результат - оптимизация по производительности и лапша на асме (поддерживаемость кода на асме - это отдельная тема). Если заменят MCU - еще год ждать?

Пытаюсь представить отрасль, где это оправдано. Не могу. Разве что военка, где заменить контроллер задача совсем не трвиальная. И подождать можно, т.к. изделия всё-равно никому не нужны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 08:35 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4981
Откуда: Китай, Пекин
...бг-г-г
сишники оказывается ещё и нищеброды

Изображение

не удивлен ни разу.
ибо это как правило старперы, которые так и не смогли освоить ничего современного. кроме как....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 09:50 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 4353
Откуда: Vinnitsya
Так неудивительно. Конечный результат работы сишников измеряется считанными мегабайтами, а в случае эмбеда и вовсе килобайтами. За что им платить? ;))

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 11:43 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1487
cheblin писал(а):
ибо это как правило старперы, которые так и не смогли освоить ничего современного. кроме как....

Похоже, не в теме ты.
Scala, Golang, Ruby, Kotlin не только отечественными, но западными стандартами запрещены к использованию для управления чем-то более сложным, чем fucking machin.
Objective-C, Swift. Нигде не встречал ссылки на стандарты этих языков.

С остальными та же самая фигня. В итоге для программирования МК остаются С и С++. Для промышленных контроллеров они же, плюс МЭК 61131-3. Даже древний Паскаль можно использовать для систем жизнеобеспечений, в отличие от всей этой новомодной шушеры. Так что дело не в старпёрстве, а знании стандартов и сфере деятельности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 12:00 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4981
Откуда: Китай, Пекин
вахтёр детектед.
у тебя есть в это жизни ещё что нибудь, помимо "управления чем-то"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 13:09 
Только пришел

Зарегистрирован: 07 июл 2021, 13:08
Сообщения: 12
Забавно. Зп питоняш находится на уровне PHPшников )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 13:23 
Старожил
Аватара пользователя

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 5601
Откуда: КЧР, поселок Нижний Архыз
kot_matroskin писал(а):
Зп питоняш находится на уровне PHPшников )

Дык, одна и та же гадость же! Вообще, странно, что пыхпыхеры что-то получают, отличное от нуля. Я думал, это дерьмо уже лет 10 как перестали использовать. А школота все лезет и лезет со своими пыхами/пытхонами/goвнами и педеrustами…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 13:45 
Только пришел

Зарегистрирован: 07 июл 2021, 13:08
Сообщения: 12
Eddy_Em писал(а):
kot_matroskin писал(а):
Зп питоняш находится на уровне PHPшников )

Дык, одна и та же гадость же!

Ну это понятно. Просто питоняши очень любят кичиться своим скриптовым драндулетом, позиционируя его как "язык для всего" за который якобы "много платят". А так, конечно, да - что пайтон, что пых нафиг не нужны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 14:22 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 771
Честно говоря, так питон и ниасилил - как-то с matlab/octave тяжко слезать, да и нет особого желания.
Лучше уж Julia изучать, как по мне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 14:28 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1487
cheblin писал(а):
вахтёр детектед.
у тебя есть в это жизни ещё что нибудь, помимо "управления чем-то"?

У меня заказчики и объекты серьёзные. Просто специфика работы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 14:52 
Старожил

Зарегистрирован: 22 июн 2010, 21:53
Сообщения: 1295
Откуда: Brussels
"управление чем-либо" - это, наверное, сильно меньше 1% от рынка разработки ПО (возможно и на порядки меньше).
Так что на зарплаты С/С++-девелоперов эта сфера не влияет от слова "никак".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Си? Почему. Больше. Никогда
СообщениеДобавлено: 15 сен 2021, 15:01 
Старожил

Зарегистрирован: 02 авг 2021, 21:34
Сообщения: 574
.


Последний раз редактировалось KilkennyCat 28 ноя 2021, 17:24, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 77 ]  На страницу Пред.  1, 2, 3, 4  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB