Я сильно подозреваю, что вы сравниваете яблоки с апельсинами.
Вы компилировали с точно таким же компилятором, с такими же флагами компиляции и создавали приложение с точной такой же функциональностью?
Если это так, разберите исполняемый файл и посмотрите, что означает дополнительный код .
Я предполагаю, что это какой-то одноразовый библиотечный код, используемый для поддержки функций C ++, которые ранее не использовались.
Но, как всегда, не угадай, измерь.
У вас есть одна точка данных. Это не говорит вам много.
Мы могли бы наблюдать увеличение размера файла на 350% в во всех случаях или на фиксированные 16 КБ. Вам нужно выяснить, что это такое.
Так что получите еще несколько точек данных. Расширьте свою заявку. Сделайте так, чтобы оно открывало десять окон вместо одного, или иначе добавьте дополнительную функциональность. в этом случае "ваша" версия в три раза больше? Или это на 16кб больше? Или где-то посередине? Получить еще несколько точек данных, и вы сможете увидеть, как размер файла масштабируется .
Но, скорее всего, вы ни о чем не беспокоитесь по нескольким причинам:
- компилятор C ++ рассматривает inline как подсказку. Вы облегчаете компилятору встроенную функцию, но решение остается за самим компилятором, и он пытается сделать приложение быстрым. Если размер файла начинает выходить из-под контроля, это замедлит ваш код, и поэтому ваш компилятор попытается оптимизировать его в сторону меньшего размера файла.
- вы смотрите на пару килобайт . В возрасте терабайт жестких дисков. Если это может стать проблемой, тогда вы сможете спровоцировать эту проблему в тестовом примере. Если вы не можете написать тест, который приводит к увеличению размера файла более чем на 16 КБ, тогда не стоит беспокоиться.
- если размер файла действительно становится проблемой, компиляторы обычно имеют флаг "оптимизировать для размера".
- большие исполняемые файлы обычно получают свой размер, потому что они содержат много данных и ресурсов. Сам код очень редко является проблемой (если вы не помешаетесь на метапрограммировании шаблонов)