Evgeny_CD, Архитектор (14.09.2010 22:06, просмотров: 203) ответил koyodza на добавлю
Дополню. В упоминавшемся мною проекте был графический интерфейс от Микриума. uc-GUI, будь он неладен. Вначале он жутко тормозил. Проведя простейший профайлинг, стало понятно, где. Бригада программеров за две недели вдумчивого перелопачивания особенно "талантливого" кода, на чистом С, умеренно используя прагмы и квалификаторы GCC, ускорила гуй раз в 20.
Почувствовав вкус успеха, народ решил посоревноваться к компилером и переписать кусочек на асме. За неделю работы они достигли 10% победы над компилером по скорости, и были к концу процесса выжаты как лимон. (тогда была довольно старая версия GCC, типа 2.97. Думаю, современные версии отыграли бы эти 10%...)
Далее всем все стало ясно, и убивание башкой ап стену более никто не предпринимал.
Фишка вот в чем. Мозги человека имеют ограниченный кеш. Количество объектов, которые могут обрабатываться одновременно, ограничено, хотя объекты могут быть очень сложными.
Когда пишешь на асме (лично писал даже для 8048 - это был настоящий мазохизм!) - кеш забит простыми объектами типа асмовых иструкций и макросов. На С у тебя куда более сложные объекты, и ты можешь при помощи того же кеша в единицу времени переваривать гораздо больше информации.
На С++ это доведено до совершенства, но там свои сложности, пока не будет это трогать.