CGO 2023
Sat 25 February - Wed 1 March 2023 Montreal, Canada

Java is the “go-to” programming language choice for developing scalable enterprise cloud applications. In such systems, even a few percent CPU time savings can offer a significant competitive advantage and cost savings. Although performance tools abound for Java, those that focus on the data locality in the memory hierarchy are rare.

In this paper, we first categorize data locality issues in Java programs. We then present DJXPerf, a lightweight, object-centric memory profiler for Java, which associates memory-hierarchy performance metrics (e.g., cache/TLB misses) with Java objects. DJXPerf uses statistical sampling of hardware performance monitoring counters to attribute metrics to not only source code locations but also Java objects. DJXPerf presents Java object allocation contexts combined with their usage contexts and presents them ordered by the poor locality behaviors. DJXPerf’s performance measurement, object attribution, and presentation techniques guide optimizing object allocation, layout, and access patterns. DJXPerf incurs only ~8.5% runtime overhead and ∼6% memory overhead on average, requiring no modifications to hardware, OS, Java virtual machine, or application source code, which makes it attractive to use in production. Guided by DJXPerf, we study and optimize a number of Java and Scala programs, including well-known benchmarks and real-world applications, and demonstrate significant speedups.

Mon 27 Feb

Displayed time zone: Eastern Time (US & Canada) change

13:30 - 15:10
Session 2 -- Tool and Practical Experience IMain Conference at Montreal 1-2-3
Chair(s): Fernando Magno Quintão Pereira Federal University of Minas Gerais
13:30
26m
Talk
Khaos: The Impact of Inter-procedural Code Obfuscation on Binary Diffing Techniques
Main Conference
Peihua Zhang Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Chenggang Wu Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences; Zhongguancun Laboratory, Mingfan Peng Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Kai Zeng Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Ding Yu Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Yuanming Lai Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Yan Kang Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Wei Wang Institute of Computing Technology at Chinese Academy of Sciences, Zhe Wang Institute of Computing Technology at Chinese Academy of Sciences; Zhongguancun Laboratory
DOI
13:56
26m
Talk
Lifting Code Generation of Cardiac Physiology Simulation to Novel Compiler Technology
Main Conference
Arun Thangamani University of Strasbourg; Inria, Tiago Trevisan Jost University of Strasbourg; Inria, Vincent Loechner University of Strasbourg; Inria, Stéphane Genaud University of Strasbourg; Inria, Bérenger Bramas University of Strasbourg; Inria
DOI
14:22
26m
Talk
DJXPerf: Identifying Memory Inefficiencies via Object-Centric Profiling for Java
Main Conference
Bolun Li North Carolina State University, Pengfei Su University of California, Milind Chabbi Scalable Machines Research, Shuyin Jiao North Carolina State University, Xu Liu North Carolina State University
DOI