VS2010 vs VS2017
От: CEMb  
Дата: 23.10.18 03:33
Оценка:
Добрый день

Открыл тут проект, который раньше делал в 2010 студии, в 2017 и пересобрал release версию.

Оказалось, что файл вырос в три раза! (с 0.9mb до 2.7mb) Какого маракуя?

Подскажите, как можно провести анализ, что, собственно, попадает в сборку? И почему так вырос размер?
Re: VS2010 vs VS2017
От: _NN_ www.nemerleweb.com
Дата: 24.10.18 08:35
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Добрый день


CEM>Открыл тут проект, который раньше делал в 2010 студии, в 2017 и пересобрал release версию.


CEM>Оказалось, что файл вырос в три раза! (с 0.9mb до 2.7mb) Какого маракуя?


CEM>Подскажите, как можно провести анализ, что, собственно, попадает в сборку? И почему так вырос размер?


С каким флагами собирается ?
/MD , /MT ?
Оптимизации включены ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: VS2010 vs VS2017
От: Chorkov Россия  
Дата: 24.10.18 08:45
Оценка: 6 (1)
Здравствуйте, CEMb, Вы писали:

CEM>Добрый день


CEM>Подскажите, как можно провести анализ, что, собственно, попадает в сборку?


Можно попросить линкер генерировать map файл. https://docs.microsoft.com/en-us/cpp/build/reference/map-generate-mapfile?view=vs-2017
Дальше суммировать скриптом по разным признакам....
Или утилитами типа http://www.sikorskiy.net/prj/amap/index.html

CEM> И почему так вырос размер?


Вероятнее всего, стандартная библиотека выросла, хотя возможны варианты...
Re: VS2010 vs VS2017
От: kov_serg Россия  
Дата: 24.10.18 13:11
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Открыл тут проект, который раньше делал в 2010 студии, в 2017 и пересобрал release версию.

CEM>Оказалось, что файл вырос в три раза! (с 0.9mb до 2.7mb) Какого маракуя?
CEM>Подскажите, как можно провести анализ, что, собственно, попадает в сборку? И почему так вырос размер?
Телеметрию выключал?
Re[2]: VS2010 vs VS2017
От: CEMb  
Дата: 25.10.18 02:25
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>С каким флагами собирается ?

_NN>/MD , /MT ?
_NN>Оптимизации включены ?

я ничего не менял в настройках проекта, просто открыл в 2017 студии проект, с которым работал в 2010. Все настройки те же, MTd и MT есть в дебаге и релизе соответственно
Re[2]: VS2010 vs VS2017
От: CEMb  
Дата: 25.10.18 04:17
Оценка:
Здравствуйте, kov_serg, Вы писали:

CEM>>Открыл тут проект, который раньше делал в 2010 студии, в 2017 и пересобрал release версию.

CEM>>Оказалось, что файл вырос в три раза! (с 0.9mb до 2.7mb) Какого маракуя?
CEM>>Подскажите, как можно провести анализ, что, собственно, попадает в сборку? И почему так вырос размер?
_>Телеметрию выключал?
Не думаю, это где?
Re[2]: VS2010 vs VS2017
От: CEMb  
Дата: 25.10.18 04:22
Оценка:
Здравствуйте, Chorkov, Вы писали:

CEM>>Добрый день


CEM>>Подскажите, как можно провести анализ, что, собственно, попадает в сборку?


C>Можно попросить линкер генерировать map файл. https://docs.microsoft.com/en-us/cpp/build/reference/map-generate-mapfile?view=vs-2017

C>Дальше суммировать скриптом по разным признакам....
C>Или утилитами типа http://www.sikorskiy.net/prj/amap/index.html

О, какая полезная программа

CEM>> И почему так вырос размер?


C>Вероятнее всего, стандартная библиотека выросла, хотя возможны варианты...


Похоже, что работа с шаблонами сильно поменялась.
Хм, АМап выдаёт на мои шаблона отрицательное смещение по адресу и объём в 600К. При этом, я закомментировал проблемный объект и его все использования по коду, он из списка АМапа пропал, появился другой (тоже объект многоэтажного шаблона), но размер exe не изменился.

А так часть проекта был Crypto++, возможно он тоже стал иначе собираться, он то сильно зависит от языка
Re: VS2010 vs VS2017
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 26.10.18 20:16
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Открыл тут проект, который раньше делал в 2010 студии, в 2017 и пересобрал release версию.


CEM>Оказалось, что файл вырос в три раза! (с 0.9mb до 2.7mb) Какого маракуя?


CEM>Подскажите, как можно провести анализ, что, собственно, попадает в сборку? И почему так вырос размер?


Это про плюсы?

Для ориентира, у меня релизные сборки (С++, полная оптимизация):

32 бита
VC10 — 6 539 776 bytes
VC11 — 6 315 520 bytes
VC12 — 6 401 024 bytes
VC14 — 6 623 744 bytes
VC15 — 6 579 200 bytes

64 бита
VC10 — 8 617 984 bytes
VC11 — 8 326 144 bytes
VC12 — 8 580 608 bytes
VC14 — 8 155 136 bytes
VC15 — 8 038 400 bytes

Собирались в конце сентября этого (2018) года.

В проекте используется только родной STL (без фанатизма — std::string, std::vector, map, set, алгоритмы по минимуму).
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[2]: VS2010 vs VS2017
От: CEMb  
Дата: 30.10.18 02:22
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Это про плюсы?


КД>Для ориентира, у меня релизные сборки (С++, полная оптимизация):


КД>32 бита

КД>VC10 — 6 539 776 bytes
КД>VC11 — 6 315 520 bytes
КД>VC12 — 6 401 024 bytes
КД>VC14 — 6 623 744 bytes
КД>VC15 — 6 579 200 bytes

КД>64 бита

КД>VC10 — 8 617 984 bytes
КД>VC11 — 8 326 144 bytes
КД>VC12 — 8 580 608 bytes
КД>VC14 — 8 155 136 bytes
КД>VC15 — 8 038 400 bytes

КД>Собирались в конце сентября этого (2018) года.


КД>В проекте используется только родной STL (без фанатизма — std::string, std::vector, map, set, алгоритмы по минимуму).


Ясно, видимо всё-таки дело в Crypto++
Ну или ещё всё-таки есть дельта между 15 и 17
Re[2]: VS2010 vs VS2017
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 30.10.18 05:57
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>В проекте используется только родной STL (без фанатизма — std::string, std::vector, map, set, алгоритмы по минимуму).


Тогда за счет чего там 6-8 Мб — картинки, мультики?
Re[3]: VS2010 vs VS2017
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 30.10.18 08:37
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

КД>>В проекте используется только родной STL (без фанатизма — std::string, std::vector, map, set, алгоритмы по минимуму).


ЕМ>Тогда за счет чего там 6-8 Мб — картинки, мультики?


res файлы весят 662 килобайта.

Остальное значит код и его обвязка в виде RTTI (тут я ).

Это OLE DB провайдер. Под все (выпущенные) версии InterBase и Firebird.

Проекту больше 18-ти лет. Конкретно эта (текущая и последняя) версия пишется с 2003 года
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[4]: VS2010 vs VS2017
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 31.10.18 02:25
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>res файлы весят 662 килобайта.

КД>Остальное значит код и его обвязка в виде RTTI (тут я ).

Если не используется автоматическая генерация заметных объемов кода, то для получения 6-8 Мб EXE объем текста программы должен быть в районе сотни мегабайт.
Re[5]: VS2010 vs VS2017
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 31.10.18 06:25
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>res файлы весят 662 килобайта.

КД>>Остальное значит код и его обвязка в виде RTTI (тут я ).

ЕМ>Если не используется автоматическая генерация заметных объемов кода, то для получения 6-8 Мб EXE объем текста программы должен быть в районе сотни мегабайт.


Да не, тут меньше 40MB.

  SourceMonitor говорит следующее
Project Directory            D:\Users\Dima\Work_Clear\ActiveX\IBProvider_v3\
Project Name                IBProvider
Checkpoint Name                Checkpoint2
Created On                31 Oct 2018, 09:16:53
Files                    5026
Lines                    675 048*
Statements                242 681
Percent Branch Statements        12,1
Percent Lines with Comments        32,1
Classes Defined                2 515
Methods Implemented per Class        7,46
Average Statements per Method        7,7
Line Number of Most Complex Method    {undefined}
Name of Most Complex Method        RemoteFB__P13__XSQLDA_Utilities::Helper__Parse_XSQLDA_MSG_DATA                                            ()
Maximum Complexity            71
Line Number of Deepest Block        {undefined}
Maximum Block Depth            9+
Average Block Depth            1,26
Average Complexity            2,50
Functions                3 032

Вообще, тут же еще таблицы с данными — для перекодировки и все такое. Прямо в коде. Понятно, что они тоже что-то жрут.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[5]: VS2010 vs VS2017
От: Sharov Россия  
Дата: 01.11.18 10:08
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Если не используется автоматическая генерация заметных объемов кода, то для получения 6-8 Мб EXE объем текста программы должен быть в районе сотни мегабайт.


Откуда статистика, личный опыт?
Кодом людям нужно помогать!
Re: VS2010 vs VS2017
От: DTB Россия  
Дата: 02.11.18 10:05
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Добрый день


CEM>Открыл тут проект, который раньше делал в 2010 студии, в 2017 и пересобрал release версию.


CEM>Оказалось, что файл вырос в три раза! (с 0.9mb до 2.7mb) Какого маракуя?


CEM>Подскажите, как можно провести анализ, что, собственно, попадает в сборку? И почему так вырос размер?


проект случаем не использует MFC (статику)? Они в него понапихали всякого мусора, началось с 2015ой.

предлагается использовать _AFX_NO_MFC_CONTROLS_IN_DIALOGS с шаманством
Have fun...
Re[6]: VS2010 vs VS2017
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 04.11.18 12:18
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Откуда статистика, личный опыт?


Угу. Ну и некоторое представление о принципах генерации кода компиляторами C++.
Re[2]: VS2010 vs VS2017
От: CEMb  
Дата: 06.11.18 03:06
Оценка:
Здравствуйте, DTB, Вы писали:

DTB>проект случаем не использует MFC (статику)? Они в него понапихали всякого мусора, началось с 2015ой.


DTB>предлагается использовать _AFX_NO_MFC_CONTROLS_IN_DIALOGS с шаманством


Нет, чистенькое winAPI + Crypto++, а после вырезания второго 2017-release стало весить 1.2мб
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.