Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1453101.1453111acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

A scalable technique for characterizing the usage of temporaries in framework-intensive Java applications

Published: 09 November 2008 Publication History

Abstract

Framework-intensive applications (e.g., Web applications) heavily use temporary data structures, often resulting in performance bottlenecks. This paper presents an optimized blended escape analysis to approximate object lifetimes and thus, to identify these temporaries and their uses. Empirical results show that this optimized analysis on average prunes 37% of the basic blocks in our benchmarks, and achieves a speedup of up to 29 times compared to the original analysis. Newly defined metrics quantify key properties of temporary data structures and their uses. A detailed empirical evaluation offers the first characterization of temporaries in framework-intensive applications. The results show that temporary data structures can include up to 12 distinct object types and can traverse through as many as 14 method invocations before being captured.

References

[1]
W. Alexander, R. Berry, F. Levine, and R. Urquhart. A unifying approach to performance analysis in the Java environment. IBM Systems Journal, 1:118--134, 2000.
[2]
G. Ammons, T. Ball, and J. R. Larus. Exploiting hardware performance counters with flow and context sensitive profiling. In Proc. of the ACM SIGPLAN Conf. on Prog. Lang. Design and Impl. (PLDI), pages 85--96. ACM Press, 1997.
[3]
G. Ammons, J.-D. Choi, M. Gupta, and N. Swamy. Finding and removing performance bottlenecks in large systems. In Proc. of the European Conf. on Object-oriented Prog. (ECOOP), 2004.
[4]
S. Artzi, M. D. Ernst, D. Glasser, and A. Kiezun. Combined static and dynamic mutability analysis. In Proc. of the 22nd IEEE/ACM Intl. Conf. on Automated Soft. Eng., pages 104--113, 2007.
[5]
S. Blackburn, R. Garner, C. Hoffmann, A. Khan, K. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. Moss, A. Phansalkar, D. Stefanovic, T. VanDrunen, D. V. Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In Proc. of the ACM SIGPLAN Conf. on Object-Oriented Prog. Syst., Langs, and Appls (OOPSLA), pages 169--190, Oct. 2006.
[6]
D. Buytaert, K. Beyls, and K. D. Bosschere. Hinting refactorings to reduce object creation in Java. In Proceedings of the fifth ACES Symposium, pages 73--76, 1 2005.
[7]
J.-D. Choi, M. Gupta, M. J. Serrano, V. C. Sreedhar, and S. P. Midkiff. Stack allocation and synchronization optimizations for Java using escape analysis. ACM Trans. on Prog. Lang. and Sys., 25(6):876--910, 2003.
[8]
C. Csallner and Y. Smaragdakis. Check 'n' Crash: Combining static checking and testing. In Proc. of the 27th Intl Conf. on Soft. Eng. (ICSE), 2005.
[9]
C. Csallner and Y. Smaragdakis. DSD-crasher: A hybrid analysis tool for bug finding. In Proc. of ACM SIGSOFT Intl Symp. on Soft. Test. and Anal. (ISSTA), pages 245--254, 2006.
[10]
W. DePauw, E. Jensen, N. Mitchell, G. Sevitsky, J. Vlissides, and J. Yang. Software visualization: State of the art survey. In LNCS 2269, 2002.
[11]
B. Dufour, B. G. Ryder, and G. Sevitsky. Blended analysis for performance understanding of framework-based applications. In ISSTA '07: Proc. of the Intl Symp. on Soft. Test. and Anal., pages 118--128, 2007.
[12]
M. Ernst. Static and dynamic analysis: Synergy and duality. In Proc. of the Wksp on Dyn. Anal., 2003.
[13]
C. Flanagan, K. Leino, M. Lillibridge, G. Nelson, J. Saxe, and R. Stata. Extended static checking for Java. In Proc. of the ACM SIGPLAN Conf. on Prog. Lang. Design and Impl., pages 234--245, 2002.
[14]
P. Godefroid, N. Klarlund, and K. Sen. DART: Directed automated random testing. In Proc. of the ACM SIGPLAN Conf. on Prog. Lang. Design and Impl., 2005.
[15]
A. Groce and R. Joshi. Exploiting traces in program analysis. In Proc. of Intl Conf. on Tools and Algs for the Constr. and Anal. of Sys. (TACAS), 2006.
[16]
R. Gupta, M. L. Soffa, and J. Howard. Hybrid slicing: Integrating dynamic information with static analysis. ACM Trans. on Soft. Eng. and Meth., 6(4), Oct. 1997.
[17]
O. Lhoták and L. Hendren. Scaling Java points-to analysis using Spark. In G. Hedin, editor, 12th Intl Conf. on Comp. Const. (CC'03), volume 2622 of LNCS, pages 153--169, April 2003.
[18]
T. J. Marlowe and B. G. Ryder. Properties of data flow frameworks: A unified model. Acta Informatica, 28:121--163, 1990.
[19]
N. Mitchell. The runtime structure of object ownership. In Proc. of the European Conf. on Object-oriented Prog. (ECOOP), 2006.
[20]
N. Mitchell and G. Sevitsky. The causes of bloat, the limits of health. In Proc. of the ACM SIGPLAN Conf. on Object-Oriented Prog. Syst., Langs, and Appls (OOPSLA), pages 245--260, Oct. 2007.
[21]
N. Mitchell, G. Sevitsky, and H. Srinivasan. Modeling runtime behavior in framework-based applications. In Proc. of the European Conf. on Object-oriented Prog. (ECOOP), 2006.
[22]
M. Mock, D. Atkinson, C. Chambers, and S. Eggars. Improving program slicing with dynamic points-to data. In Proc. of the 10th Symp. on the Found. of Soft. Eng., 2002.
[23]
A. Orso, T. Apiwattanapong, and M. J. Harrold. Leveraging field data for impact analysis and regression testing. In Proc. of European Soft. Eng. Conf. and ACM SIGSOFT Symp. on the Found. of Soft. Eng. (ESEC/FSE'03), Helsinki, Finland, September 2003.
[24]
B. G. Ryder. Dimensions of precision in reference analysis of object-oriented programming languages. In invited paper in the Proc. of the Twelfth Intl Conf. on Comp. Constr., pages 126--137, April 2003.
[25]
K. Sen, D. Marinov, and G. Agha. CUTE: A concolic unit testing engine for C. In Proc. of the Conf. on the Found. of Soft. Eng., 2005.
[26]
A. Shankar, M. Arnold, and R. Bodik. JOLT: Lightweight dynamic analysis and removal of object churn. In Proc. of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA). ACM Press, 2008. (To appear).
[27]
K. Srinivas and H. Srinivasan. Summarizing application performance from a components perspective. In Proc. of the ACM SIGSOFT Conf. on Found. of Soft. Eng., pages 136--145, September 2005.
[28]
A. Tomb, G. Brat, and W. Visser. Variably interprocedural program analysis for runtime error detection. In Proc. of the ACM SIGSOFT Intl Symp. on Soft. Test. and Anal. (ISSTA), pages 97--107, Jul. 2007.

Cited By

View all
  • (2023)Performance Bug Analysis and Detection for Distributed Storage and Computing SystemsACM Transactions on Storage10.1145/358028119:3(1-33)Online publication date: 19-Jun-2023
  • (2022)DeepDev-PERF: a deep learning-based approach for improving software performanceProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549096(948-958)Online publication date: 7-Nov-2022
  • (2021)A Survey of Parametric Static AnalysisACM Computing Surveys10.1145/346445754:7(1-37)Online publication date: 18-Jul-2021
  • Show More Cited By

Index Terms

  1. A scalable technique for characterizing the usage of temporaries in framework-intensive Java applications

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      SIGSOFT '08/FSE-16: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
      November 2008
      369 pages
      ISBN:9781595939951
      DOI:10.1145/1453101
      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]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 09 November 2008

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Java
      2. dataflow analysis
      3. escape analysis
      4. framework-intensive applications
      5. performance
      6. program understanding

      Qualifiers

      • Research-article

      Conference

      SIGSOFT '08/FSE-16
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 17 of 128 submissions, 13%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)7
      • Downloads (Last 6 weeks)2
      Reflects downloads up to 12 Nov 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)Performance Bug Analysis and Detection for Distributed Storage and Computing SystemsACM Transactions on Storage10.1145/358028119:3(1-33)Online publication date: 19-Jun-2023
      • (2022)DeepDev-PERF: a deep learning-based approach for improving software performanceProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549096(948-958)Online publication date: 7-Nov-2022
      • (2021)A Survey of Parametric Static AnalysisACM Computing Surveys10.1145/346445754:7(1-37)Online publication date: 18-Jul-2021
      • (2021)PerfLens: a data-driven performance bug detection and fix platformProceedings of the 10th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis10.1145/3460946.3464318(19-24)Online publication date: 22-Jun-2021
      • (2020)SoftMonProceedings of the 17th International Conference on Mining Software Repositories10.1145/3379597.3387444(397-408)Online publication date: 29-Jun-2020
      • (2019)Automated Finite State Machine ExtractionProceedings of the 3rd ACM Workshop on Forming an Ecosystem Around Software Transformation10.1145/3338502.3359760(9-15)Online publication date: 15-Nov-2019
      • (2019)View-centric performance optimization for database-backed web applicationsProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00104(994-1004)Online publication date: 25-May-2019
      • (2018)Identifying Core Objects for Trace Summarization by Analyzing Reference Relations and Dynamic PropertiesIEICE Transactions on Information and Systems10.1587/transinf.2017KBP0018E101.D:7(1751-1765)Online publication date: 1-Jul-2018
      • (2018)Optimistic Hybrid AnalysisACM SIGPLAN Notices10.1145/3296957.317715353:2(348-362)Online publication date: 19-Mar-2018
      • (2018)Darwinian data structure selectionProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236043(118-128)Online publication date: 26-Oct-2018
      • Show More Cited By

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media