Question

I have a system (Linux & C++) doing intensive signal/image processing operations. I would like to use PGO to improve performance of our application.

Are there any risks / potential issues I should be aware of when using PGO ?

Are unit tests + E2E tests enough to verify that PGO didn't break anything ?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top