Есть ли такие инструменты? Если так, как они называются, и есть ли общий термин для поиска? «Профилировщик размера изображения», похоже, не дает много результатов. Я даже не уверен, как бы вы отметили это.
Я ищу что-то, что заняло бы собственный .exe или .dll, и использование файла .pdb помогло бы выяснить, почему двоичный файл имеет размер в несколько мегабайт, визуализируя, что занимает больше всего места. Надеемся, что способен анализировать статические переменные / таблицы, код и ресурсы, и желательно, если это возможно, бесплатно.
Существуют ли инструменты для статического анализа или запуск его только под профилировщиком памяти? Есть ли бесплатный профилировщик памяти, который помог бы с самим размером файла?
Иногда я делал это вручную, используя файл карты компоновщика, в котором перечислены все функции, их положения и длины.
Было бы неплохо, если бы существовал инструмент, позволяющий взять 20 равномерно распределенных «ударов» в .exe или .dll и сказать мне название функции, в которую он попадает.
Если бы я делал это достаточно часто, я бы написал один.
Тем не менее, простой способ узнать, что составляет большую часть пространства, — это просто посмотреть на файл карты, в случайных местах и посмотреть, какие там функции.
В качестве примера того, что я имею в виду, я видел файлы, в которые были включены большие классы ввода-вывода, или классы Date, или контейнерные классы только потому, что была одна переменная, объявленная с таким классом, но даже не использованная.
Или локальный класс может наследоваться от общего системного класса, вызывая связывание множества вещей, когда локальный класс на самом деле не нуждается в этом.
Это можно легко определить, просто взглянув на файл карты.