OOPredictor: Predicting Object-Oriented Accesses using Static Analysis
Hassan Arafat, David Bremner, Kenneth B. Kent, Julian Wang

TL;DR
This paper introduces OOPredictor, a static analysis tool within the JVM that predicts object-oriented access patterns using Markov chains, aiming to improve cache performance without runtime profiling overhead.
Contribution
It presents a novel static analysis approach to predict object access patterns in Java programs, reducing reliance on profiling and runtime overhead.
Findings
Predictor exhibits good accuracy in modeling access patterns.
Can inform load stall mitigation strategies effectively.
Implemented within OpenJ9 JVM for practical evaluation.
Abstract
Object-oriented Programming has become one of the most dominant design paradigms as the separation of concerns and adaptability of design reduce development and maintenance costs. However, the convenience is not without cost. The added indirection inherent in such designs causes excessive pointer chasing, negatively affecting locality, which in turn degrades the performance of cache structures. Furthermore, modern hardware prefetchers are mostly stride prefetchers that are ill-equipped to handle the unpredictability of access patterns generated by pointer chasing. Most software approaches that seek to address this problem resort to profiling the program as it runs, which comes with a significant run-time overhead or requires data from previous runs. In this paper, we propose the use of compile-time static analysis to predict the most common access patterns displayed by a program during…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Parallel Computing and Optimization Techniques · Security and Verification in Computing
