Здравствуй ЛОР.
Возник вопрос: а как лучше собрать софт для выпуска в production? Какой уровень оптимизации, оставлять ли отладочные символы?
Есть абстрактный софт, для использвания внутри компании. Выкатывается с помощью RPM, работает автономно (минимум взаимодействия с пользователем). По сути — поддерживает инфраструктуру.
В предыдущей жизни его выкатывали под SunOS (aka Solaris), с -O0 и -g всегда. В принципе, тому можно найти объяснение (ну хоть малость разумное):
- Бинарники в процессе разработки точно такие же, как и в продакшене (-O0), что уменьшает возможность возникновения production-специфичных ошибок (sic!)
- При возникновении каких-либо неполадок можно взять бинарник с продакшена и отдебажить его (ведь отладочные символы вместе с ним: -g).
С другой стороны, бинарники просто пухнут от отладочной информации (не то, что бы RAMы не хватало, скорее беспокоит скорость заргузки и исполнения). А -O0 не оптимизирует моменты в коде, которые были написаны не оптимально в силу стилистических соглашений.
Посоветуйте, что делать, пожалуйста.