Question:
Difference between Debug and Release configurations
Answer:
Debug and Release are simply names for different configurations of project that allows individually to set Compiler, Linker, Loader options differently based on requirements.
The defaults of Debug and Release differ in that Debug generates Debug information and does not perform optimization, while the Release version does not generate debug information but does enable optimization.
As for the generated loader files, this is entirely based on the DXE file they are generated from.
The default setting (or "debug" mode within the IDE) is for non-optimized compilation in order to assist programmers in diagnosing problems with their initial coding. The optimizer is enabled through the IDE by selecting Project > Properties >C/C++ Build > Settings > Tool Settings > Compiler > General > Enable optimization, or by using the -O switch (-O [0|1]). A "release" build from within the IDE automatically enables optimization.