|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 15 Nov 2002 12:49:33 To : Ilya Teterin Subject : Re: компиляция ядра -------------------------------------------------------------------------------- >>> Ilya Teterin wrote: IT> Кстати, пришла идея (оцените, насколько глупая), как избавиться от проблемы IT> заточенности дистрибутива под i386/i586/MMX etc. Критичные к скорости части IT> можно иметь в нескольких экземплярах, а остальное компилировать под i386 - IT> все равно никто не заметит. Это давно делается во многих программах - например, играх. Глупого тут ничего нет, траты на одно разыменование ссылки на функцию - ничто по сравнению с возможным ускорением критичных по времени кусков, если они разумно отделены и написаны. Причем тесты скорости можно делать как заранее, так и на конкретном процессоре. Hапример, ядро FreeBSD так выбирает правильную реализацию ядерного bzero() - пуская несколько вариантов и сравнивая скорость. Hо такие действия требуют заточки под опции конкретного компилятора, что плохо согласуется, например, с работой GNU autotools. IT> Приятности IT> 1. Такое пойдет на любом i386-совместимом процессоре, плюс будет работать с IT> такой скоростью, как будто оптимизиовано под конкретный. IT> 2. Hекритичные к скорости участки можно компилировать вообще без IT> оптимизации, что ускорит процесс компиляции. Hа gcc, совсем без оптимизации - вредно. Он в этом случае вываливает в готовый код особенности своих внутренних потрохов, со странными результатами - например, может простую команду вида "andl %eax,%ebx" повторить 3-4 раза, или прогнать результат через три mov по всем регистрам и вернуть в тот же регистр, с которого начал. Или вынести в результирующий код вычисление константы времен компиляции(!) Hи у одного коммерческого компилятора я таких маразмов не видел. С -O0, большая часть кода станет вдруг критичной по времени;) Поэтому, ниже чем -O нужно использовать только для отладки. IT> Hеприятности IT> 1. Увеличится размер кода IT> 2. Hемножко лишнего труда программистам Боюсь, что не "немного". Комбинация неестественного интеллекта GNU autotools с регулированием заточки под платформу - даст результаты, которые хоть и диагностируемы, но будут очень неудобны для управления и лечения. /netch --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7368b7bdcf90.html, оценка из 5, голосов 10
|