Difference between debug and release builds

Other than compiled file size can anyone summarize the key differences between debug and release builds?

yes in release the compiler tries to optimize the code to be faster so the source won’t translate to machine exactly as you wrote it but as an optimized version that might alter the order of some calls, remove some variables… the result is guaranteed to be the same but depending on the code it can be much faster.

Thanks Arturo. Have you ever come across an instance where an application worked differently in a RELEASE vs DEBUG deploy, perhaps due to the changing of the order of some calls?
Trying to troubleshoot my video freeze issue and testing a hypothesis that it ONLY happens with a RELEASE compile consistently and roughly 30 minutes after launch.

debug and release also change the memory layout and timing – sometimes errors like uninitialized variables or array access errors can occur in one of the two compiled types (debug / release), and sometimes timing errors (like thread errors) can happen in one and not the other because of those changes… The code basically should do the same thing, but errors in logic can be exposed because of those changes to memory or timing.