Я только что установил Platform SDK для Windows Server 2008 и .NET 3.5 в свою новую систему и впервые попытался скомпилировать проект для WIN64. Версия Unicode Release этой программы, созданная для 32-разрядной версии (с использованием оптимизирующего компилятора из более недоступного Free Toolkit), занимает около 2,8 МБ. При использовании компилятора amd64 из последней версии PSDK программа имеет размер более 5 МБ.
Меня больше всего беспокоит размер программы, поэтому все построено с переключателем / O1. Я ожидал, что программа станет больше, когда будет построена для 64-битной версии, но не настолько. Размер больше соответствует сборке из экспресс-версии, где (некоторые) оптимизации недоступны.
Компилятор из PSDK и компилятор из MSVC 2008 Professional создают программы очень разных размеров? Оптимизирует ли компилятор в PSDK таким же образом или даже вообще?
Спасибо за понимание.
Изменить:
Программа и все связанные библиотеки построены с использованием одного и того же файла makefile.vc в командной строке, поэтому различия в настройках компиляции маловероятны. Я просто использовал другой командный файл для запуска оболочки с подходящей средой для 64-битной компиляции.
Вот размеры для приложения:
VC++ Toolkit 2003 32 bit cl.exe: 13.10.3052 for 80x86 2.916.352 Platform SDK 32 bit cl.exe: 15.00.30729.01 for 80x86 2.881.536 Platform SDK 64 bit cl.exe: 15.00.21022.08 for x64 5.138.432
Таким образом, 64-битная версия на 78% больше :-(