[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1383559.1383566acmconferencesArticle/Chapter ViewAbstractPublication PagesicpeConference Proceedingsconference-collections
research-article

Controlled dynamic performance analysis

Published: 23 June 2008 Publication History

Abstract

We are interested in obtaining detailed performance information on-the-fly from long-running systems without adversely affecting the performance of the systems. We have developed a methodology consisting of a framework, DYPER, and a number of specialized agents called proflets each of which analyzes a different performance aspect. DYPER gathers performance information with a guaranteed maximum overhead that is dynamically settable by the programmer using priorities set by the proflets. Moreover, the type of information that the system can provide is generally only available for tools that generally have too much overhead to be usable in production or long-running systems. DYPER includes the ability to control and display performance data as the program is run.

References

[1]
Jennifer M. Anderson, Lance M. Berc, Jeffrey Dean, Sanjay Ghemawat, Monika R. Henzinger, Shun-Tak A. Leung, Richarc L. Sites, Mark T. Vandevoorde, Carl A. Waldspurger, and William E. Weihl, "Continuous profiliing: where have all the cycles gone?," ACM Trans. on Computer Systems Vol. 15(4) pp. 357--390 (November 1997).]]
[2]
Ziya Aral and Ilya Gertner, "Non-intrusive and interactive profiling in Parasight," Proc. ACM/SIGPLAN Conf. on Parallel Programming, pp. 21--30 (January 1998).]]
[3]
Dorian C. Arnold, Dong H. Ahn, Bronis R. de Supinski, Gregory Lee, Barton P. Miller, and Martin Schulz, "Stack trace analysis for large scale debugging," Proc. IPDPS 2007, pp. 1--10 (March 2007).]]
[4]
Thomas Ball and James R. Larus, "Optimally profiling and tracing programs," 19th ACM Symp. on Principles of Programming Languages, pp. 59--70 (January 1992).]]
[5]
Thomas Ball and James R. Larus, "Efficient path profiling," Proc 29th ACM/IEEE Symp. on Microarchitecture, pp. 46--57 (1996).]]
[6]
Andrew R. Bernat and Barton P. Miller, "Incremental call-path profiling," Concurrency and Computation: Practice and Experience Vol. 19(11) pp. 1533--1547 (August 2007).]]
[7]
Walter Binder, Jarle G. Hulaas, and Alex Villazon, "Portable resource control in Java: The J-SEAL2 Approach," Proc. OOPSLA 2001, pp. 139--155 (October 2001).]]
[8]
Walter Binder and Jarle Hulaas, "Java bytecode transformations for efficient portable CPU accounting," Electronic Notes in Theoretical Computer Science Vol. 141 pp. 53--73 (2005).]]
[9]
Walter Binder and Jarle Hulaas, "Using bytecode instruction counting as portable CPU consumption metric," Electronic Notes in Theoretical Computer Science Vol. 153 pp. 57--77 (2006).]]
[10]
Walter Binder, "Portable and accurate sampling profiling for Java," Software Practice and Experience Vol. 36(6) pp. 615--650 (May 2006).]]
[11]
Harold W. Cain, Barton P. Miller, and Brian J. N. Wylie, "A callgraph-based search strategy for automated performance diagnosis," Euro-Par 2000, (August 2000).]]
[12]
Bryan M. Cantrill, Michael W. Shapiro, and Adam H. Leventhal, "Dynamic instrumentation of production systems," USENIX '04, (June 2004).]]
[13]
Trishul M. Chilimbi and Matthias Hauswirth, "Low-overhead memory leak detection using adaptive statistical profiling," ASPLOS '04, pp. 156--164 (October 2004).]]
[14]
Mandy Chung, "Using JConsole to monitor appliocations," Sun Microsystems, http://java.sun.com/developer/techicalArticals/j2se/jconsole.html, (December 2004).]]
[15]
Grzegorz Czajkowski, Stephen Hahn, Glenn Skinner, Pete Soper, and Ciaran Bryce, "A resource management interface for the Java platform," Sun Microsystems TR-2003-124, (May 2003).]]
[16]
Markus Dahm, "Byte code engineering," Java Infromations Tage '99, pp. 267--277 (1999).]]
[17]
Mikhali Dmitriev, "Design of JFluid: A profiling technology and tool based on dynamic bytecode instrumentation," Sun Microsystems Report TR_2003-125, (November 2003).]]
[18]
The Eclipse Foundation, "Eclipse test and performance tools platform project," http://www.eclipse.org/tptp/index.php, (August 2007).]]
[19]
Nathan Froyd, John Mellor-Crummey, and Rob Fowler, "Low-overhead call path profiling of unmodified, optimized code.," Proc. ICS '05, pp. 81--90 (2005).]]
[20]
Susan L. Graham, Peter B. Kessler, and Marshall K. McKusick, "gprof: A call graph execution profiler," SIGPLAN Notices Vol. 17(6) pp. 120--126 (June 1982).]]
[21]
Martin Hirzel and Trishul M. Chilimbi, "Bursty tracing: a framework for low-overhead temporal profiling," 4th Workshop on Feedback-Directed and Dynamic Optimization, (December 2001).]]
[22]
Jeffrey K. Hollingsworth and Barton P. Miller, "An adaptive cost system for parallel program instrumentation," Proc. Euro-Par '96 Parallel Processing, pp. 88--97 (1996).]]
[23]
Karen L. Karavanic, Barton P. Miller, and Improving online performance diagnosis by the use of historical performance data, IEEE Conf. on Supercomputing, (1999).]]
[24]
Gunter Kniesel and Pascal Costanza, "JMangler: a framework for load-time transformation of Java class files," SCAM 2001, pp. 100--110 (November 2001).]]
[25]
Chris Laffra, Doug Lorch, Dave Streeter, Frank Tip, and John Field, "What is Jikes Bytecode Toolkit," http://www.alphaworks.ibm.com/tech/jikesbt, (March 2000).]]
[26]
James R. Larus, "EEL guts: Using the EEL executable editing library," University of Wisconsin-Madison Computer Science Department (November 1996).]]
[27]
Ben Liblit, Alex Aiken, Alice X. Zheng, and Michael I. Jordan, "Bug isolation via remote program sampling," PDLI '03, pp. 141--154 (June 2003).]]
[28]
Babak Mahdavi and Karel Driesen, "Heap hot spot visualization in Java," McGill U. CS Tech report SOCS-01.8, (May 2001).]]
[29]
Leo Meyerovich, Michael Greenberg, Gregory Cooper, Aleks Bromfield, and Shriram Krishnamurthi, "FlapJax," http://www.flapjax-lang.org, (2007).]]
[30]
Sun Microsystems, "JVM tool interface version 1.0," http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html, (November 2004).]]
[31]
Sun Microsystems, "Dynamic tracing support in the Java HotSpot virtual machine," http://ava.sun.com/j2se/reference/whitepapers/java-dtrace-whitepaper.pdf, (2005).]]
[32]
Sun Microsystems, "Performance Analyzier, Sun Studio 11," Sun Microsystems Manual, (November 2005).]]
[33]
Barton P. Miller, Mark D. Callaghan, Jonathan M. Cargille, Jeffrey K. Hollingsworth, R. Bruce Irvin, Karen L. Karavanic, Krishna Kunchithapadam, and Tia Newhall, "The paradyn parallel performance measurement tools," IEEE Computer Vol. 28(11) pp. 37--46 (1995).]]
[34]
Alexander V. Mirgorodskiy and Barton P. Miller, "Crosswalk: a tool for performance profiling across the user-kernel boundary," Parallel Computing Conference, (2003).]]
[35]
Alessandro Orso, "Selective capture and reply of program executions," WODA 2005, (okscrpe).]]
[36]
Wim De Pauw, David Lorenz, John Vlissides, and Mark Wegman, "Execution patterns in object-oriented visualization," Proc. Conf. On Object-Oriented Technologies and Systems, pp. 219--234 (1998).]]
[37]
Wim De Pauw, Doug Kimelman, and John Vlissides, "Visualizing object-oriented software execution," pp. 329--346 in Software Visualization: Programming as a Multimedia Experience, ed. Blaine A. Price,MIT Press (1998).]]
[38]
Wim De Pauw and Gary Sevitsky, "Visualizing reference patterns for solving memory leaks in Java," in Proceedings of the ECOOP '99 European Conference on Object-oriented Programming, (1999).]]
[39]
Wim De Pauw, Nick Mitchell, Martin Robillard, Gary Sevitsky, and Harini Srinivasan, "Drive-by analysis of running programs," Proc. ICSE Workshop of Software Visualization, (May 2001).]]
[40]
David J. Pearce, Matthew Webster, Robert Berry, and Paul H. J. Kelly, "Profiling with AspectJ," Software Practice and Experience Vol. 37(7) pp. 747--777 (June 2007).]]
[41]
Steven P. Reiss, "Connecting tools using message passing in the FIELD environment," IEEE Software Vol. 7(4) pp. 57--67 (July 1990).]]
[42]
Steven P. Reiss, FIELD: A Friendly Integrated Environment for Learning and Development, Kluwer (1994).]]
[43]
Steven P. Reiss, "Visualization for software engineering - programming environments," in Software Visualization: Programming as a Multimedia Experience, ed. Blaine Price, MIT Press (1997).]]
[44]
Steven P. Reiss, "JIVE: visualizing Java in action," Proc. ICSE 2003, pp. 820--821 (May 2003).]]
[45]
Steven P. Reiss and Manos Renieris, "JOVE: Java as it happens," Proc. SoftVis '05, pp. 115--124 (May 2005).]]
[46]
Philip Charles Roth, "Scalable On-Line Automated Performance Diagnosis," U. Wisconsin-Madison Ph.D. Dissertation, (2005).]]
[47]
Philip C. Roth and Barton P. Miller, "On-line automated performance diagnosis on thousands of processes," Proc. Principles and Practice of Parallel Programming, pp. 69--80 (2006).]]
[48]
Titos Saridakis, Christos Nikolaou, Maria Karavassili, Evangelos Markatos, Apostolos Zarras, and Catherine Houstis, "ArrayTracer: a parallel performance analysis tool," U. Ioannina Tech. Report LYDIA/WP2/T.2.2/D4(b), (1996).]]
[49]
Arjan Seesing and Alessandro Orso, "InsECTJ: a generic instrumentation framewok for collecting dynamic information within Eclipse," Eclipse '05, pp. 45--49 (October 2005).]]
[50]
ShiftOne, "JRat: the Java runtime analysis toolkit," http://jrat.sourceforge.net, (May 2005).]]
[51]
Margaret Simmons and Rebecca Koskela, Performance Instrumentation and Visualization, ACM Press (1990).]]
[52]
A. Srivastava, A. Edwards, and H. Vo, "Vulcan: binary transformation in a distributed environment," Microsoft Research Tech Report MSR-TR-2001-50, (2001).]]
[53]
MIPS Computer Systems, Inc., RISCompiler Languages Programmer's Guide. December 1988.]]
[54]
Wily Technology, "Introscope and IBM Tivoli," CA Wily White Paper, (2006).]]
[55]
Sebastien Vauclair, Extensible Java Profiler, Diploma Thesis, EPFL (2002).]]
[56]
Jeffrey S. Vetter and Daniel A. Reed, "Managing performance analysis with dynamic statisticsl projection pursuit," Proc SC 99, (November 1999).]]
[57]
D. Viswanathan and S. Liang, "Java virtual machine profiler interface," IBM Systems Journal Vol. 39(1) pp. 82--95 (2000).]]
[58]
Abdul Waheed, Herman D. Hughes, and Diane T. Rover, "A resource occupancy model for evaluating instrumentation system overheads," Michigan State U. Dept. of EE Report TR-MSU-EE-SCSL-023-95, (May 1995).]]
[59]
John Whaley, "A portable sampling-based profiler for Java virtual machines," Proc. Java Grande 2000, pp. 78--87 (2000).]]
[60]
Brian J. N. Wylie, Bernd Mohr, and Felix Wolf, "Holistic hardware counter performance analysis of parallel programs," Proc. ParCo, (September 2005).]]
[61]
Benjamin Zorn and Paul Hilfinger, "A memory allocation profiler for C and Lisp programs," Proc. Summer 1988 USENIX Conference, pp. 223--237 (1998).]]

Cited By

View all
  • (2017)Enabling code transformations with FermaT on simplified bytecodeJournal of Software: Evolution and Process10.1002/smr.185729:5Online publication date: 20-Feb-2017
  • (2013)Automatic categorization and visualization of lock behavior2013 First IEEE Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT.2013.6650540(1-10)Online publication date: Sep-2013
  • (2013)Tool demonstration: The visualizations of code bubbles2013 First IEEE Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT.2013.6650521(1-4)Online publication date: Sep-2013
  • Show More Cited By

Index Terms

  1. Controlled dynamic performance analysis

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    WOSP '08: Proceedings of the 7th international workshop on Software and performance
    June 2008
    218 pages
    ISBN:9781595938732
    DOI:10.1145/1383559
    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: 23 June 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. instrumentation
    2. performance analysis
    3. profiling
    4. statistical analysis

    Qualifiers

    • Research-article

    Conference

    WOSP '08
    WOSP '08: Workshop on Software and Performance
    June 23 - 26, 2008
    NJ, Princeton, USA

    Acceptance Rates

    Overall Acceptance Rate 149 of 241 submissions, 62%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)6
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 01 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2017)Enabling code transformations with FermaT on simplified bytecodeJournal of Software: Evolution and Process10.1002/smr.185729:5Online publication date: 20-Feb-2017
    • (2013)Automatic categorization and visualization of lock behavior2013 First IEEE Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT.2013.6650540(1-10)Online publication date: Sep-2013
    • (2013)Tool demonstration: The visualizations of code bubbles2013 First IEEE Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT.2013.6650521(1-4)Online publication date: Sep-2013
    • (2013)Leveraging Performance Counters and Execution Logs to Diagnose Memory-Related Performance IssuesProceedings of the 2013 IEEE International Conference on Software Maintenance10.1109/ICSM.2013.22(110-119)Online publication date: 22-Sep-2013
    • (2012)A Performance Anomaly Detection and Analysis Framework for DBMS DevelopmentIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2011.8824:8(1345-1360)Online publication date: 1-Aug-2012
    • (2012)Software Performance Monitoring Using Aggregated Performance Metrics by Z-ValueConvergence and Hybrid Information Technology10.1007/978-3-642-32645-5_88(708-715)Online publication date: 2012
    • (2011)Identifying performance deviations in thread poolsProceedings of the 2011 27th IEEE International Conference on Software Maintenance10.1109/ICSM.2011.6080775(83-92)Online publication date: 25-Sep-2011
    • (2010)Visualizing the Java heapProceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 210.1145/1810295.1810344(251-254)Online publication date: 1-May-2010
    • (2010)Visualizing threads, transactions and tasksProceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering10.1145/1806672.1806675(9-16)Online publication date: 5-Jun-2010
    • (2009)Visualizing the Java heap to detect memory problems2009 5th IEEE International Workshop on Visualizing Software for Understanding and Analysis10.1109/VISSOF.2009.5336418(73-80)Online publication date: Sep-2009
    • Show More Cited By

    View Options

    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