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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- S. F. Goldsmith. Measuring Empirical Computational Complexity. PhD thesis, University of California, Berkeley, 2009. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- S. L. Graham, P. B. Kessler, and M. K. McKusick. gprof: a call graph execution profiler. SIGPLAN Not., 39 (4): 49--57, 2004. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- C. C. Mcgeoch. Experimental analysis of algorithms. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1986. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- X. Xiao, J. Zhou, and C. Zhang. Tracking data structures for postmortem analysis. In ICSE 2011 NIER Track, 2011. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- }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 Scholar
Digital Library
Index Terms
Algorithmic profiling
Recommendations
Algorithmic profiling
PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and ImplementationTraditional 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 ...
Shadow Profiling: Hiding Instrumentation Costs with Parallelism
CGO '07: Proceedings of the International Symposium on Code Generation and OptimizationIn profiling, a tradeoff exists between information and overhead. For example, hardware-sampling profilers incur negligible overhead, but the information they collect is consequently very coarse. Other profilers use instrumentation tools to gather ...
Edge profiling versus path profiling: the showdown
POPL '98: Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesEdge profiles are the traditional control flow profile of choice for profile-directed compilation. They have been the basis of path-based optimizations that select "hot" paths, even though edge profiles contain strictly less information than path ...







Comments