Как измерить размер кода?

Когда обсуждаются определенные функции или оптимизации, часто упоминается Размер кода.

Хотя я, конечно, понимаю базовую концепцию, то есть то, что набор кода, скомпилированного в машинный код, приведет к X байтам машинного кода (плюс статические данные), я недавно понял, что очень не уверен, как на самом деле мера Размер кода данного двоичного файла.

Так, как вы измеряете размер кода?

Вы просто проверяете, насколько велик получаемый бинарный файл («исполняемый файл», .exe) является?
Вам нужен инструмент, такой как dumpbin.exe или какие-то конкретные флаги компоновщика для получения подробных результатов?

2

Решение

Вы можете указать компоновщику создать файл карты. Это дает наиболее подробную информацию, которую легко получить (т. Е. Намного меньше, чем выполнять обратный инжиниринг кода вручную).

В зависимости от кода, использование дампа в объектном файле может дать значимые результаты, но также может привести к созданию просто «анонимного объекта» — особенно (исключительно?), Когда вы запрашиваете генерацию кода во время компоновки.

1

Другие решения

Я бы сказал, что лучше всего разбирать бинарный файл.

В контексте оптимизации кода, общий размер кода, как правило, не то, что подразумевается, а размер кода для какой-то определенной части вашей программы.

1

Если вы имеете в виду .exe в байтах в буквальном смысле, я думаю, что вы слишком обдумываете вопрос. Ваш файловый менеджер должен сказать справа размер файлов (если это не так, щелкните правой кнопкой мыши файл и откройте свойства). Файлы, которые вы ищете, должны быть в отладке с именем .exe
Если это что-то еще, извините.

-1