При использовании -g
производительность не снижается.Отладочная информация находится в отдельном разделе исполняемого файла, который даже не будет загружен, если вы запустите файл.
Но вы можете разделить отладочную информацию и исполняемые файлы, если хотите (что все равно не повлияет на производительность)).Мой Gentoo Linux обрабатывает это таким образом, причина в том, чтобы просто минимизировать используемое дисковое пространство, что позволяет мне иметь все двоичные файлы на маленьком быстром диске, сохраняя при этом отладочную информацию, которая почти никогда не используется, в отдельном разделе.*
Теперь у вас есть исполняемый файл foo и файл foo.debug, содержащий символы отладки.