About: A sidequest is an optional, not graded, not evaluated in anyway exploration into a topic. Sometimes it is just cool to know what is out there in the world.
Sidequests come with a little descritions, presentations, related resources, and a sample code or exercise you can try.
Side quests are likely a good area for further independent studies, research project, thesis, etc.
Profile-Guided Optimizations
Profiled-guided optimizations are a way to improve the performance of a given application by using previous executions of a program to inform the compiler.
Feedback-driven optimizations
Maybe measure the variability of each function?
Problem Statement
Gathering a good profile for a piece of software that may change over time(i.e a game) is difficult to
Assumptions made with PGO data is that it is always the same, and PGO may actually 'hurt' performance if behavior changes. Gathering the data also takes time.
Proposed Exercise
- Figure out format of PGO data
- Try to avoid having source, and use an external profiler to boost performance.
- Find some benchmarks (i.e. games or sample games)
- See if PGO data can be hashed as a way to 'compress' all of the basic block data
- Gather as many profiles as possible, and see if that overall improves performance in the program.
Visualize the quality of the profile compared to other profiles.
Proposed Evaluation
A visual tool that helps select the best overall profile during the entirety of the program.
Compare performance of program with one specific profile, multiple, and no profiling.
Outcomes of this Project
(Where this could lead)
Key Resources
(The first resource you should read)
Additional Resources