skip to main content
research-article

Algorithmic profiling

Published: 11 June 2012 Publication History
  • Get Citation Alerts
  • Abstract

    Traditional profilers identify where a program spends most of its resources. They do not provide information about why the program spends those resources or about how resource consumption would change for different program inputs. In this paper we introduce the idea of algorithmic profiling. While a traditional profiler determines a set of measured cost values, an algorithmic profiler determines a cost function. It does that by automatically determining the "inputs" of a program, by measuring the program's "cost" for any given input, and by inferring an empirical cost function.

    References

    [1]
    A. Bergel, O. Nierstrasz, L. Renggli, and J. Ressia. Domain-specific profiling. In J. Bishop and A. Vallecillo, editors, Objects, Models, Components, Patterns, volume 6705 of Lecture Notes in Computer Science, pages 68--82. Springer, 2011.
    [2]
    B. Dufour, B. G. Ryder, and G. Sevitsky. Blended analysis for performance understanding of framework-based applications. In Proceedings of the 2007 international symposium on Software testing and analysis, ISSTA '07, pages 118--128. ACM, 2007.
    [3]
    S. F. Goldsmith. Measuring Empirical Computational Complexity. PhD thesis, University of California, Berkeley, 2009.
    [4]
    S. F. Goldsmith, A. S. Aiken, and D. S. Wilkerson. Measuring empirical computational complexity. In Proceedings of the the 6th joint meeting of the FSE, ESEC-FSE '07, pages 395--404. ACM, 2007.
    [5]
    S. L. Graham, P. B. Kessler, and M. K. McKusick. gprof: a call graph execution profiler. SIGPLAN Not., 39 (4): 49--57, 2004.
    [6]
    T. Israr, M. Woodside, and G. Franks. Interaction tree algorithms to extract effective architecture and layered performance models from traces. J. Syst. Softw., 80: 474--492, April 2007.
    [7]
    M. Jump and K. S. McKinley. Dynamic shape analysis via degree metrics. In Proceedings of the 2009 international symposium on Memory management, ISMM '09, pages 119--128. ACM, 2009.
    [8]
    C. McGeoch, P. Sanders, R. Fleischer, P. R. Cohen, and D. Precup. Experimental algorithmics, chapter Using finite experiments to study asymptotic performance. Springer, 2002.
    [9]
    C. C. Mcgeoch. Experimental analysis of algorithms. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1986.
    [10]
    N. Mitchell, E. Schonberg, and G. Sevitsky. Making sense of large heaps. In Proceedings of the 23rd European Conference on ECOOP 2009, Genoa, pages 77--97. Springer, 2009.
    [11]
    S. Pheng and C. Verbrugge. Dynamic data structure analysis for java programs. In Program Comprehension, 2006. ICPC 2006. 14th IEEE International Conference on, pages 191--201, 2006.
    [12]
    E. Raman and D. I. August. Recursive data structure profiling. In Proceedings of the 2005 workshop on Memory system performance, MSP '05, pages 5--14. ACM, 2005.
    [13]
    M. Sagiv, T. Reps, and R. Wilhelm. Solving shape-analysis problems in languages with destructive updating. ACM Trans. Program. Lang. Syst., 20: 1--50, January 1998.
    [14]
    P. Sanders and R. Fleischer. Asymptotic complexity from experiments? a case study for randomized algorithms. In WAE '00: Proceedings of the 4th International Workshop on Algorithm Engineering, pages 135--146. Springer, 2001.
    [15]
    R. Wilhelm, S. Sagiv, and T. W. Reps. Shape analysis. In Proceedings of the 9th International Conference on Compiler Construction, CC '00, pages 1--17. Springer, 2000.
    [16]
    X. Xiao, J. Zhou, and C. Zhang. Tracking data structures for postmortem analysis. In ICSE 2011 NIER Track, 2011.
    [17]
    G. Xu and A. Rountev. Precise memory leak detection for java software using container profiling. In Proceedings of the 30th international conference on Software engineering, ICSE '08, pages 151--160. ACM, 2008.
    [18]
    G. Xu and A. Rountev. Detecting inefficiently-used containers to avoid bloat. In Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation, PLDI '10, pages 160--173, New York, NY, USA, 2010. ACM.
    [19]
    G. Xu, M. Arnold, N. Mitchell, A. Rountev, and G. Sevitsky. Go with the flow: profiling copies to find runtime bloat. In Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation, PLDI '09, pages 419--430. ACM, 2009.
    [20]
    G. Xu, N. Mitchell, M. Arnold, A. Rountev, E. Schonberg, and G. Sevitsky. Finding low-utility data structures. In Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation, PLDI '10, pages 174--186. ACM, 2010.
    [21]
    D. Zaparanuks and M. Hauswirth. The beauty and the beast: Separating design from algorithm. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'11), 2011.
    [22]
    }Zaparanuks11bD. Zaparanuks and M. Hauswirth. Vision paper: The essence of structural models. In J. Whittle, T. Clark, and T. Kühne, editors, Model Driven Engineering Languages and Systems, volume 6981 of Lecture Notes in Computer Science, pages 470--479. Springer, 2011.

    Cited By

    View all
    • (2024)Robust Resource Bounds with Static Analysis and Bayesian InferenceProceedings of the ACM on Programming Languages10.1145/36563808:PLDI(76-101)Online publication date: 20-Jun-2024
    • (2024)Enhancing Performance Bug Prediction Using Performance Code MetricsProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644920(50-62)Online publication date: 15-Apr-2024
    • (2023)Finding Short Slow Inputs Faster with Grammar-Based SearchProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598118(1068-1079)Online publication date: 12-Jul-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation
    June 2012
    572 pages
    ISBN:9781450312059
    DOI:10.1145/2254064
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 47, Issue 6
      PLDI '12
      June 2012
      534 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2345156
      Issue’s Table of Contents
    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: 11 June 2012

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. algorithmic complexity
    2. algorithmic profiling

    Qualifiers

    • Research-article

    Conference

    PLDI '12
    Sponsor:

    Acceptance Rates

    PLDI '12 Paper Acceptance Rate 48 of 255 submissions, 19%;
    Overall Acceptance Rate 406 of 2,067 submissions, 20%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)27
    • Downloads (Last 6 weeks)2

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Robust Resource Bounds with Static Analysis and Bayesian InferenceProceedings of the ACM on Programming Languages10.1145/36563808:PLDI(76-101)Online publication date: 20-Jun-2024
    • (2024)Enhancing Performance Bug Prediction Using Performance Code MetricsProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644920(50-62)Online publication date: 15-Apr-2024
    • (2023)Finding Short Slow Inputs Faster with Grammar-Based SearchProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598118(1068-1079)Online publication date: 12-Jul-2023
    • (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)Algorithmic Profiling for Real-World Complexity ProblemsIEEE Transactions on Software Engineering10.1109/TSE.2021.306765248:7(2680-2694)Online publication date: 1-Jul-2022
    • (2021)Dynaplex: analyzing program complexity using dynamically inferred recurrence relationsProceedings of the ACM on Programming Languages10.1145/34855155:OOPSLA(1-23)Online publication date: 15-Oct-2021
    • (2021)TIP: Time-Proportional Instruction ProfilingMICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3466752.3480058(15-27)Online publication date: 18-Oct-2021
    • (2020)Analyzing system performance with probabilistic performance annotationsProceedings of the Fifteenth European Conference on Computer Systems10.1145/3342195.3387554(1-14)Online publication date: 15-Apr-2020
    • (2020)CP-detectorProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416531(623-634)Online publication date: 21-Dec-2020
    • (2020)Statistical Learning of Markov Chains of Programs2020 28th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS)10.1109/MASCOTS50786.2020.9285947(1-8)Online publication date: 17-Nov-2020
    • 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