|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 15 Nov 2002 22:48:40 To : Victor Wagner Subject : Re: компиляция ядра -------------------------------------------------------------------------------- >>> Victor Wagner wrote: IT>> Переход в shared library должен находиться в некритичной части кода. VW> Hу и что? В shared library-то окажется как раз критичный код. VW> И при оптимизации этого самого критичного кода у компилятора будет VW> на один регистр в распоряжении меньше. VW> Ведь что делает -fPIC. Он указывает что данный конкретный код должен VW> уметь исполняться, будучи загружен с любого адреса, следовательно все VW> переходы нужно делать относительно некоего регистра, куда вызвавший код VW> этот самый адрес и положит. VW> А если компилировать shared library без -fPIC, она будет нифига не VW> shared, потому что динамическому загрузчику придется там смещения VW> патчить, со всеми последствиями ввиде cow. Ты смешал `shared on disk' с `shared in memory'. Смысл shared object в первую очередь - в первом варианте. Второй - как довесок. VW> И производительность системы при запуске многих программ, использующих VW> данную shared library, одновременно, просядет из-за напрасного VW> использования памяти для многих копий этой библиотеки. Да. Hо иногда надо делать и так. VW> Подозреваю, что при 10-20 юзерах того же OpenOffice она просядет за счет VW> этого эффекта сильнее, чем выиграет за счет оптимизации. Потому что оптимизацию надо делать немного не здесь ;) /netch --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/73683daf373f.html, оценка из 5, голосов 10
|