Отказ от ответственности: я не знаком со спецификой режимов выпуска и отладки AdaGide.
Вообще говоря, хотя ...
Режим отладки - это когда по крайней мере флаг отладки (-g) передается компилятору, чтобы сгенерированные объектные файлы сохраняли символьную информацию для использования отладчиком. Он может передавать другие параметры, такие как -gnata, которые разрешают утверждения, и параметр связующего -E, используемый для хранения стека обратного вызова в исключениях.
Если вы не используете много утверждений (прагма Assert), вряд ли будет существенная разница с точки зрения производительности между режимами отладки и выпуска. Объектные файлы и исполняемые файлы для отладочной версии, вероятно, будут значительно больше из-за сохранения информации о символах.
Вполне возможно, что режим выпуска может отключить проверки во время выполнения - что потенциально может оказать заметное влияние на производительность, но делать это как часть номинального режима "релиза" почти всегда будет очень плохо , что сделать в Аде. Как правило, отключаются проверки во время выполнения только , когда этого требуют требования производительности, только , где это существенно влияет на производительность, и только после того, как эти разделы кода были формально доказаны и / или полностью протестированы и проверено на правильность исполнения.
Опции оптимизации, -O2 и т. Д., Будут более существенно влиять на производительность, хотя окончательная сумма зависит от того, как структурирован и выполнен код. YMMV.