ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
80702 Топик полностью
AVR (09.02.2007 14:51, просмотров: 1) ответил д__ на Ох уж эти улучшатели, ох уж эти ускорятели...
Ох уж эти ухудшатели. ох уж эти замедлятели, ох уж эти любители совать куда ни попадя деления и взятия остатка, да еще и плавающее умножение 2*2.0001... Абстрактно-философское звучание имеет как раз "всеобъемлющее" решение с лонгом и с делениями, которые замедлят и раздуют такой код в десятки и сотни раз в зависимости от дальнейшего прогрессирования криворукости и головотяпства таких кодирующих. В эмбеддерстве не бывает ни одного лишнего такта или байта памяти - не надо делать из принципиально шустрых и компактных решений уёбищных монстров, справляющихся с морганием светодиодами исключительно благодаря продвинутым вытесняюще-многопоточным ОС, многоуровневой защите памяти от сглаза и 1024-ногим 128-битным чипам МК, требующим для работы всего какой-то сотни ватт. Для справки - у меня сделаны itoa/ltoa для многих ядер и по разным алгоритмам - так, например, реализация itoa для dsPIC занимает 16 слов кода и исполняется за 20 тактов (500 нс), а одно твое деление будет исполняться 18 тактов (при том, что в dsPIC оно поддерживается аппаратно, а в других ядрах может быть вообще труба), и таких у тебя минимум четыре, не считая обвеса. И байку про то, сколько таких преобразований потребуется в секунду, ты лучше расскажи кому-нибудь другим, а не тем, кто, например, раздает сотни измеренных значений по ASCII-протоколам на десятки забитых до упора скоростных физических каналов обмена в реальных и весьма распространенных АСУТП и прочих системах распределенного сбора и перелопачивания данных. Не стОит пуще смешить моих тапочек, о дражайший иррациональный универсализатор всех времен и народов!