ECOOP 2018
Sun 15 - Sat 21 July 2018 Amsterdam, Netherlands
co-located with ECOOP and ISSTA
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

SOAP-2018-papers
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
Talk
Jens PalsbergUniversity of California, Los Angeles, Crista Lopes
Link to publication DOI Pre-print
SOAP-2018-papers12:00 - 12:15
Talk
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
Talk
Michael D. ShahNortheastern University, USA, Samuel Guyer
Link to publication DOI Pre-print