There is very little runtime overhead associated with Ada, other than that arising from run-time checking. Run-time checking can be completely suppressed, or suppressed only in performance-critical areas. The vast majority of Ada compilers do significant compile-time optimization to eliminate run-time checks that are known to never fail, so even without suppressing run-time checks in general, many Ada applications operate at a comparable speed with C or C++ programs. If the run-time checks are suppressed, then the performance is often essentially identical.