0

Программа, скомпилированная с флагом -g в gcc, работает медленнее, чем та же программа, скомпилированная без -g?

1

У меня есть программа, которую я компилирую с флагом -O3 для повышения производительности и -g для добавления отладочных символов (в случае сбоя я могу использовать дамп памяти). Однако меня сильно беспокоит один аспект: существует ли производственный штраф из-за использования флага -g?

Когда я сравниваю выходные данные компиляции с флагом -g и без него, я замечаю, что выходные данные без -g на 80% меньше, чем с -g. Если дополнительное пространство уходит на отладочные символы, меня это не слишком волнует, так как эта часть, как я полагаю, не используется во время выполнения. Однако если каждая инструкция в выходных данных без -g требует выполнения 4 дополнительных инструкций в выходных данных с -g, я бы без колебаний отказался бы от использования флага -g, даже с ценой невозможности обработки дампов памяти.

Как можно узнать размер секции отладочных символов внутри программы? И в целом, ведет ли компиляция с флагом -g к созданию программы, которая работает медленнее по сравнению с идентичным кодом, скомпилированным без флага -g?

0 ответ(ов)

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь