Serge wrote:
Драйвер HD в Колибри тоже держит буфер в кешируемой памяти.
Оно так исключительно по причине древнего DMA контроллера (изначально я писал этот код). Да и еще он работает только с реальными адресами ниже 16 Мб. Возможно на SATA контроллерах что-то и поменялось, но я уже там мне ковырялся.
art_zh wrote:
С каждым новым блоком программа набирала обороты (кто еще там говорит о достоинствах 'современных оптимизирующих компиляторов'?):
- исходный Си-код (преобразование по 1024 точкам) - 180 тыс. тактов;
- замена BitInvert и Step1 чистым ассемблерным кодом - 160 тыс.
- замена Step2 - 120 тыс
- замена Step3 - 80 тыс. тактов!
И это - в масдае.
От души смеялся в очередной раз. Код на ассемблере при общих условиях всегда быстрее. Те кто кричит про компиляторы - реально не писали много кода на ассемблере, в связи со многими вопросами. Главный (и на самом деле главнейший из них) упирается в лень. Однако наличие других людей, пишущих код на ассемблере, портит всю картину и люди начинают доказывать, прежде всего для самих себя, что они правы, но мы то знаем...
Сейчас Серж скажет, что я дурак и вообще.
Но реально до Менует, а впоследствии Колибри не было таких крупных проектов написанных на ассемблере. Но если автор первой писал исключительно ради возможности доказать что это возможно, то мы пишем не ради этого. Все уже доказано.
