Iceberg: A Tool for Static Analysis of Java Critical Sections
In this paper we present our static analysis tool Iceberg that helps find potential performance bugs in concurrent Java programs by analyzing the code in critical sections. By look- ing at real world programs, we can start to understand what programmers are putting into critical sections and how that might affect performance. In this paper we look at a few spe- cific scenarios in which the code in a critical section might occasionally have high latency and slow down the overall execution of a program.
We look at 24 real world programs and present a num- ber of code metrics within critical sections that could indi- cate potential performance problems. These metrics include counts of variable-latency operations such as I/O and mem- ory allocation, as well as overall measurements of critical section size. Using our tool we are able to find critical sec- tions with unusual behavior compared to the other critical sections. We also present our future work on a dynamic analysis tool that takes the results of our static analysis tool and instruments the program to determine whether a true performance problem exists.
Tue 14 JunDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00
|Towards Cross-Platform Cross-Language Analysis with Soot
|Iceberg: A Tool for Static Analysis of Java Critical Sections
|Toward an Automated Benchmark Management System
|Invited Talk: Probabilistic Learning from Big Code
Martin Vechev ETH Zurich