Abstract
Many performance optimizations rely on or are enhanced by runtime profile information. However, both offline and online profiling techniques suffer from intrinsic and practical limitations that affect the quality of delivered profile data. The quality of profile data is its ability to accurately predict (relevant aspects of) future program behavior. While these limitations are known, their impact on the effectiveness of profile-guided optimizations, compared to the ideal performance, is not as well understood. We define ideal performance for adaptive optimizations as that achieved with a precise profile of future program behavior. In this work, we study and quantify the performance impact of fundamental profiling limitations by comparing the effectiveness of typical adaptive optimizations when using the best profiles generated by offline and online schemes against a baseline where the adaptive optimization is given access to profile information about the future execution of the program. We model and compare the behavior of three adaptive JVM optimizations - heap memory management using object usage profiles, code cache management using method usage profiles, and selective just-in-time compilation using method hotness profiles - for the Java DaCapo benchmarks. Our results provide insight into the advantages and drawbacks of current profiling strategies and shed light on directions for future profiling research.
Cite
CITATION STYLE
Jantz, M. R., Robinson, F. J., & Kulkarni, P. A. (2016). Impact of intrinsic profiling limitations on effectiveness of adaptive optimizations. ACM Transactions on Architecture and Code Optimization, 13(4). https://doi.org/10.1145/3008661
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.