Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages &Amp; Applications 2014
DOI: 10.1145/2660193.2660210
|View full text |Cite
|
Sign up to set email alerts
|

Continuously measuring critical section pressure with the free-lunch profiler

Abstract: Today, Java is regularly used to implement large multithreaded server-class applications that use locks to protect access to shared data. However, understanding the impact of locks on the performance of a system is complex, and thus the use of locks can impede the progress of threads on configurations that were not anticipated by the developer, during specific phases of the execution. In this paper, we propose Free Lunch, a new lock profiler for Java application servers, specifically designed to identify, in-v… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
15
0
1

Year Published

2016
2016
2023
2023

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 30 publications
(16 citation statements)
references
References 25 publications
0
15
0
1
Order By: Relevance
“…Analyzing the message rate can help detecting network contention [16], [17]. Several works show that lock contention can be detected by measuring the time spent waiting for locks [12], [13], [14], [15], [55]. Overall, these projects define metrics that identify a saturation, but they can not tell if the saturation is the cause of a performance bottleneck.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Analyzing the message rate can help detecting network contention [16], [17]. Several works show that lock contention can be detected by measuring the time spent waiting for locks [12], [13], [14], [15], [55]. Overall, these projects define metrics that identify a saturation, but they can not tell if the saturation is the cause of a performance bottleneck.…”
Section: Related Workmentioning
confidence: 99%
“…These tools give raw metrics, but they do not indicate if optimizing a block of code can lead to better performance. Typically, these profiling tools report metrics to know if a memory controller [1], [2], [3], [4], [5], a cache [6], [7], [8], [9], [10], [11], a lock [12], [13], [14], [15] or the network stack [16], [17] is inefficiently used. However, these metrics indicate a saturation, but a saturation does not necessarily lead to a large slowdown, either because the access to the saturated component remains efficient or simply because the slowdown caused by the saturation has only a marginal impact on the overall performance.…”
Section: Introductionmentioning
confidence: 99%
“…In [4] the authors present the Free Lunch profiler, a Java based tool for detecting lock contention. One of the most important contributions of this paper is the definition of what they call the free lunch metric, which is used to measure critical section pressure.…”
Section: Related Workmentioning
confidence: 99%
“…Understanding the runtime behavior of parallel programs is hard. Thus tools have been developed to understand parallel program behavior for performance debugging [1,2,4]. Existing works are aimed at specific metrics to identify performance bugs, e.g., normalized execution time, critical paths, slack etc.…”
Section: Introductionmentioning
confidence: 99%
“…Previous systems that find and fix cache contention at runtime [27,28,34] have focused exclusively on false sharing in unmanaged C/C++ programs. Many existing profilers for managed languages [12] can identify some forms of true sharing like lock contention. However, code written in managed languages such as Java or C# can suffer from false sharing as well.…”
Section: Introductionmentioning
confidence: 99%