Я только что установил Platform SDK для Windows Server 2008 и .NET 3.5 на мою новую систему и впервые попытался скомпилировать проект для WIN64. Версия Unicode Release этой программы, созданная для 32-битной системы (с использованием оптимизирующего компилятора из недоступного Free Toolkit), занимает около 2,8 МБ. При использовании компилятора amd64 из последней версии PSDK размер программы превышает 5 МБ.
Больше всего меня интересует размер программы, поэтому все строится с ключом / O1. Я ожидал, что программа станет больше, когда она будет построена для 64 бит, но не так сильно. Размер больше соответствует сборке из версии Express, где (некоторые) оптимизации недоступны.
Компилятор из PSDK и компилятор из MSVC 2008 Professional создают программы очень разных размеров? Компилятор в PSDK оптимизирует таким же образом или даже вообще?
Спасибо за понимание.
Edit:
Программа и все связанные библиотеки создаются с использованием одного и того же файла 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% больше: - (