Mozilla Firefox последних версий разросся настолько, что не может скомпоноваться из-за исчерпания 3Гб виртуальной памяти 32-разрядного Microsoft'овского компоновщика:
https://bugzilla.mozilla.org/show_bug.cgi?id=709193
Нормально решить проблему можно только перейдя на кросс-компиляцию и кросс-компоновку, т.е. на выполнение всей сборки браузера из режима x86_64.
Причиной такой жадности компоновщика к оперативной памяти является PGO — оптимизация, управляемая профилировкой — это когда статистика профилировщика используется как подсказка компилятору/компоновщику, на какие именно функции следует потратить больше усилий по оптимальному распределению регистров (это NP-полная задача), какие ветвления более вероятны, где выгоден инлайнинг и т.д. Даже если просто собрать самые "популярные" функции в начале кодовой секции exe-файла, это даст неплохой профит по скорости за счёт улучшенной cache locality.
https://bugzilla.mozilla.org/show_bug.cgi?id=709193
Нормально решить проблему можно только перейдя на кросс-компиляцию и кросс-компоновку, т.е. на выполнение всей сборки браузера из режима x86_64.
Причиной такой жадности компоновщика к оперативной памяти является PGO — оптимизация, управляемая профилировкой — это когда статистика профилировщика используется как подсказка компилятору/компоновщику, на какие именно функции следует потратить больше усилий по оптимальному распределению регистров (это NP-полная задача), какие ветвления более вероятны, где выгоден инлайнинг и т.д. Даже если просто собрать самые "популярные" функции в начале кодовой секции exe-файла, это даст неплохой профит по скорости за счёт улучшенной cache locality.
no subject
Date: 2011-12-15 07:46 am (UTC)при чем тут Bloatware? кривые рученки ребят из микрософта, которые не заложили нормальную масштабируемость.