Saved in:
Bibliographic Details
Main Authors: Arafat, Hassan, Bremner, David, Kent, Kenneth B., Wang, Julian
Format: Preprint
Published: 2025
Subjects:
Online Access:https://arxiv.org/abs/2512.03972
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912746757423104
author Arafat, Hassan
Bremner, David
Kent, Kenneth B.
Wang, Julian
author_facet Arafat, Hassan
Bremner, David
Kent, Kenneth B.
Wang, Julian
contents 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 run time. Since Java is one of the most popular object-oriented languages, we implement our prototype within the OpenJ9 JVM, inside the OMR optimizer infrastructure. The outputs of our proposed predictor are Markov chains that model the expected behavior of the program. The effectiveness of the proposed predictor is evaluated by comparing the model with the actual run-time behavior of the program measured using an instrumented interpreter. Our experiments show that the proposed predictor exhibits good accuracy and can be used to inform minimally intrusive load stall mitigation strategies, e.g. informing copying GCs on more locality-friendly copying orders
format Preprint
id arxiv_https___arxiv_org_abs_2512_03972
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle OOPredictor: Predicting Object-Oriented Accesses using Static Analysis
Arafat, Hassan
Bremner, David
Kent, Kenneth B.
Wang, Julian
Programming Languages
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 run time. Since Java is one of the most popular object-oriented languages, we implement our prototype within the OpenJ9 JVM, inside the OMR optimizer infrastructure. The outputs of our proposed predictor are Markov chains that model the expected behavior of the program. The effectiveness of the proposed predictor is evaluated by comparing the model with the actual run-time behavior of the program measured using an instrumented interpreter. Our experiments show that the proposed predictor exhibits good accuracy and can be used to inform minimally intrusive load stall mitigation strategies, e.g. informing copying GCs on more locality-friendly copying orders
title OOPredictor: Predicting Object-Oriented Accesses using Static Analysis
topic Programming Languages
url https://arxiv.org/abs/2512.03972