Современные информационные технологии и IT-образование (Sep 2021)
Multi-Profile Static Binary Optimization of the Application Based on Execution Traces
Abstract
Profiling is the collection of characteristics about the execution of programs that can be used during optimizations. One example of usage is the BOLT static binary optimizer. The main performance gain in it is achieved by recomposing the code based on the profile obtained during application execution. However, this optimization is implemented without considering switching between application scenarios when there is a change in the collected characteristics of the program during its execution. This leads to the fact that when the application is executed on a scenario other than the profiled one, the performance gain will be less, or regression will be observed. Combining all possible program profiles into one does not solve all possible problems. This paper describes an algorithm for multi-profile code analysis, considering the change of scenarios of the program. This algorithm is based on processing application execution traces collected using dynamic binary instrumentation. Based on this analysis, it is possible to optimize the placement of code depending on its belonging to a certain scenario, which will lead to an increase in the locality of the code. Also, based on multi-profile analysis, it is possible to optimize the duplication of code that falls into several scenarios simultaneously.
Keywords