Re: HELP
- From
- Viktor Karev (2:5080/1003)
- To
- Ianos Gnatiuc
- Date
- 2002-10-03T12:10:12Z
- Area
- RU.ALGORITHMS
From: Viktor Karev <termar@narod.ru>
Reply-To: termar@narod.ru
Приветствия!
Ianos Gnatiuc wrote:
> тем не менее, компилятор никогда не сможет сделать критическую зону лучше чем
> человек. как правило, там где скорость криточно, пишут на асме, а не всю
> програму.
Насчет "никогда" у меня есть сомнения.
Посмотри, как оптимизирующий транслятор преобразует сложные
арифметические выражения.
Он учитывает такие тонкости, что некоторые операции можно
переставить без ущерба для результата, а такая перестановка даст
выигрыш либо по скорости выполнения, либо по размеру кода. Причем
такая перестановка может быть разной на разных процессорах.
И оптимизация в трансляторах строится именно в расчете на
преобразование таких выражений.
Сомневаюсь, что человеку удастся за приемлимое время написать на
asm функцию дифференцирования символьного выражения, причем в
нескольких вариантах: для 486, для пентиума, с оптимизацией по
памяти и с оптимизацией по времени.
> для примера, посмотри как деляется простая функция как memmove(...)
А что memmove? Конечно, логичнее написать библиотечную функцию на
asm, чем писать оптимизатор, который будет делать такой же код.
Это забота авторов транслятора, что вставить в оптимизатор, а что
- в библиотечную функцию.
А я уже работаю с результатом. В частности, использую тот же
memmove, но на ЯВУ.
Виктор.
--- ifmail v.2.15dev5
* Origin: Urals State University for Railway Transport (2:5080/1003@fidonet)