Profile Guided Optimization (PGO)

Ankit Asthana

PGO is a runtime compiler optimization which leverages profile data collected from running important and performance centric user scenarios to build an optimized version of the application. PGO optimizations have some significant advantage over traditional static optimizations as they are based upon how the application is likely to perform in a production environment which allow the optimizer to optimize for speed for hotter code paths (common user scenarios) and optimize for size for colder code paths (not so common user scenarios) resulting in generating faster and smaller code for the application attributing to significant performance gains.

Getting Started

Best Practices

  • [To be published April/2013: PGO best practices, tips and tricks]
  • [To be published April/2013: How to analyze your training scenarios when using PGO]

Video Resources


Learn more about PGO, C++ and related developer and technical topics on the community. We are fortunate to have many vibrant communities and hundreds of smart, helpful members willing to engage.

  • Follow the Visual C++ team on Facebook and Twitter for tips, tricks, updates, links, questions and other information.
  • Ask questions (and see what other folks have asked) on the MSDN forums or Stack Overflow.
  • See what Microsoft C++ MVPs are up to.
  • Attend a local user group meeting. Attend a conference like //build/.
  • Ping Ankit Asthana (PGO PM) directly with questions, comments, ideas for future content and any other feedback you might have.



Discussion is closed.

Feedback usabilla icon