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

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

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

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

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

3 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам