skip to main content
10.1145/2931021.2931025acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Iceberg: a tool for static analysis of Java critical sections

Published:14 June 2016Publication History

ABSTRACT

In this paper we present a static analysis tool called Iceberg that helps programmers find potential performance bugs in concurrent Java programs. The focus of our work is on identifying critical sections with high variability in their latency: in most cases they execute quickly, but occasionally they stall, holding a lock for an unusually long time, and preventing other threads from making progress. The end user experiences such behavior as transient program "hangs". These performance bugs are difficult to find because they are infrequent, transient, and hard to reproduce. This paper describes our initial results running Iceberg on 24 real-world concurrent programs. Our current approach is to identify all of the code that could be executed inside each critical section, including all methods potentially called by it. We collect a number of code metrics that might indicate potential performance problems. These metrics include counts of variable-latency operations such as I/O and memory allocation, as well as overall measurements of critical section size. Using our tool we are able to find critical sections with unusual behavior compared to the other critical sections. Our future work includes a more detailed analysis of control-flow through critical sections, as well as a dynamic analysis to measure the critical section latencies directly.

References

  1. Charlie Curtsinger and Emery D. Berger. 2015. Coz: finding code that counts with causal profiling. In Proceedings of the 25th Symposium on Operating Systems Principles (SOSP ’15). ACM, New York, NY, USA, 184-197. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Dacong Yan, Guoqing Xu, and Atanas Rountev. 2012. Rethinking Soot for summary-based whole-program analysis. In Proceedings of the ACM SIGPLAN International Workshop on State of the Art in Java Program analysis (SOAP ’12). ACM, New York, NY, USA, 9-14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Dacong Yan, Guoqing Xu, and Atanas Rountev. 2012. Uncovering performance problems in Java applications with reference propagation profiling. In Proceedings of the 34th International Conference on Software Engineering (ICSE ’12). IEEE Press, Piscataway, NJ, USA, 134- 144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Dmitrijs Zaparanuks and Matthias Hauswirth. 2012. Algorithmic profiling. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’12). ACM, New York, NY, USA, 67-76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Florian David, Gael Thomas, Julia Lawall, and Gilles Muller. 2014. Continuously Measuring Critical Section Pressure with the Free-Lunch Profiler. SIGPLAN Not. 49, 10 (October 2014), 291-307. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. GraphViz. http://www.graphviz.org/Google ScholarGoogle Scholar
  7. Guoliang Jin, Linhai Song, Xiaoming Shi, Joel Scherpelz, and Shan Lu. 2012. Understanding and detecting real-world performance bugs. SIGPLAN Not. 47, 6 (June 2012), 77-88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Gustavo Pinto, Weslley Torres, Benito Fernandes, Fernando Castor, and Roberto S.M. Barros. 2015. A large-scale study on the usage of Java’s concurrent programming constructs. J. Syst. Softw. 106, C (August 2015), 59-81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Raja Valle-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, and Vijay Sundaresan. 1999. Soot - a Java bytecode optimization framework. In Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research (CASCON ’99), Stephen A. MacKay and J. Howard Johnson (Eds.). IBM Press 13-. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Rui Gu, Guoliang Jin, Linhai Song, Linjie Zhu, and Shan Lu. 2015. What change history tells us about thread synchronization. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2015). ACM, New York, NY, USA, 426-438. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Rui Xin, Zhengwei Qi, Shiqiu Huang, Chengcheng Xiang, Yudi Zheng, Yin Wang, and Haibing Guan. An automation-assisted empirical study on lock usage for concurrent programs. In 29th IEEE International Conference on Software Maintenance, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Sunflow - http://sunflow.sourceforge.net/Google ScholarGoogle Scholar

Index Terms

  1. Iceberg: a tool for static analysis of Java critical sections

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      SOAP 2016: Proceedings of the 5th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis
      June 2016
      29 pages
      ISBN:9781450343855
      DOI:10.1145/2931021

      Copyright © 2016 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 14 June 2016

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate11of11submissions,100%

      Upcoming Conference

      PLDI '24

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader