Blogs (61) >>
Fri 20 Jul 2018 12:15 - 12:30 at Hamburg - Java

Writing multi-threaded code for both correctness and performance is difficult. Often programmers strive for correctness, which may lead to an overly conservative use of synchronization primitives. Even when correct, however, synchronized regions of code (called critical sections) may introduce performance variability which cause unexpected software hangs which can be considered a performance bug. These performance bugs are occasional, hard to predict, and may negatively impact the overall user experience.

In this paper we present a tool called Iceberg for performing a dynamic analysis of Java programs to gather information about the variability of the performance of critical sections in code. We have calibrated our tool against a suite of microbenchmarks to find what variability within critical sections may look like and then tested with three real world programs.

Our results document several cases where we can find where variability occurs and may yield software hangs in critical section performance.

Fri 20 Jul
Times are displayed in time zone: (GMT+02:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

11:00 - 12:30: SOAP - Java at Hamburg
SOAP-2018-papers11:00 - 11:10
Day opening
Omer TrippGoogle Inc., Ben HermannUniversity of Paderborn
SOAP-2018-papers11:10 - 12:00
Jens PalsbergUniversity of California, Los Angeles, Crista Lopes
Link to publication DOI Pre-print
SOAP-2018-papers12:00 - 12:15
Michael ReifTU Darmstadt, Germany, Florian KüblerTU Darmstadt, Germany, Michael EichbergTU Darmstadt, Germany, Mira MeziniTU Darmstadt
Link to publication DOI Pre-print Media Attached
SOAP-2018-papers12:15 - 12:30
Michael D. ShahNortheastern University, USA, Samuel Guyer
Link to publication DOI Pre-print