What Information Does Gcc Profile Guided Optimization (Pgo) Collect and Which Optimizations Use It

What information does GCC Profile Guided Optimization (PGO) collect and which optimizations use it?

-fprofile-generate enables -fprofile-arcs, -fprofile-values and -fvpt.

-fprofile-use enables -fbranch-probabilities, -fvpt, -funroll-loops, -fpeel-loops and -ftracer

Source: http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Optimize-Options.html#Optimize-Options

PS. Information about LTO also on that page.

Are the PGO (Profile Guided Optimization) tools available in Visual Studio 2019 Community Edition?

According to the comment made in the demo video (in 2012) it is only available in Pro-plus SKUs of Visual Studio.

An alternative is to use GCC which has PGO features.

The risks of using PGO (profile-guided optimization) with production environment

Microsoft has system that is modifying conditional jumps based on the usage statistics plus it condenses frequently used pieces of code into smaller number of pages. This essentially compacts effective memory footprint several times and reduces CPU consumption for 20-50%.

This system was extensively used both in user and in kernel mode. The quality of this system was very high. In 100% of cases it was doing its job correctly. I do not see even minor down sides.

It might happen that some other similar system might be less reliable than that of Microsoft. That one from Microsoft was extremely good.



Related Topics



Leave a reply



Submit