Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Advanced
Oct 26, 1998

Before You Profile Your Software...

If you intend to optimize your software's performance, make sure to profile the release version rather than the debug version. The debug version of the executable contains additional code (about 40% extra compared to the equivalent release executable) for symbol lookup and other debug "scaffolding." In addition, most compilers have distinct implementations of operator new in debug and release versions. The debug version of new initializes the memory it allocates with a unique value and adds a header at block start. Release version of new doesn't perform any of these actions. Furthermore, a release version of an executable is aggressively optimized in the following ways:
  • Elimination of unneeded variables
  • Loop flattening
  • Register storage
  • Inlining
For these reasons, you can't deduce from a debug version where the actual bottlenecks are located.

Debugging and optimizations are two distinct operations. Use the debug version to chase bugs and logical errors, and profile the release version to optimize it.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date