skip to main content
research-article

Algorithmic profiling

Published:11 June 2012Publication History
Skip Abstract Section

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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. F. Goldsmith. Measuring Empirical Computational Complexity. PhD thesis, University of California, Berkeley, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. L. Graham, P. B. Kessler, and M. K. McKusick. gprof: a call graph execution profiler. SIGPLAN Not., 39 (4): 49--57, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. C. Mcgeoch. Experimental analysis of algorithms. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. X. Xiao, J. Zhou, and C. Zhang. Tracking data structures for postmortem analysis. In ICSE 2011 NIER Track, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Algorithmic profiling

            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

            Full Access

            • Published in

              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
              • 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

              Copyright © 2012 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 11 June 2012

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!