понедельник, 16 февраля 2009 г.

Меня всегда удивляло, что иногда при сборке проекта после того, как появляется заветное Linking... иногда вываливаются ворнинги, явно относящихся к плюсовому коду.

Сегодня узнал, что в компиляторе-линкере Visual C++ есть занятная фича - кодогенерация во время линковки. То есть компилятор, вместо того чтобы выдавать на-гора исполняемый платформо-зависимый код, вместо этого сливает в объектные файлы байт-код промежуточного представления, который потом может быть оптимизирован линкером, позволяя встраивать вызовы не-inline функций между разными объектниками. MSDN утверждает, что это дает прирост в производительности от 10 до 15 процентов. В реальной жизни, скорее всего, такого не будет, но можно рассчитывать на 3-5 процента. Не очень много, конечно, но для разных движков - самое оно.

Как включить? Идем в свойства проекта и выставляем Yes для C++/Optimization/Whole Program Optimization и Linker/Optimizaiton/Link Time Code Generation, /GL и /LTCG соответственно.

Комментариев нет:

Отправить комментарий