skip to main content
research-article
Open access

Feature-Specific Profiling

Published: 19 December 2018 Publication History

Abstract

While high-level languages come with significant readability and maintainability benefits, their performance remains difficult to predict. For example, programmers may unknowingly use language features inappropriately, which cause their programs to run slower than expected. To address this issue, we introduce feature-specific profiling, a technique that reports performance costs in terms of linguistic constructs. Feature-specific profilers help programmers find expensive uses of specific features of their language. We describe the architecture of a profiler that implements our approach, explain prototypes of the profiler for two languages with different characteristics and implementation strategies, and provide empirical evidence for the approach’s general usefulness as a performance debugging tool.

References

[1]
Gene M. Amdahl. 1967. Validity of the single processor approach to achieving large scale computing capabilities. In Proceedings of the Spring Joint Computer Conference.
[2]
Walter Binder, Danilo Ansaloni, Alex Villazón, and Philippe Moret. 2011. Flexible and efficient profiling with aspect-oriented programming. In Concurrency and Computation: Practice and Experience. John Wiley and Son, New York, 1749--1773. Retrieved from
[3]
John Clements, Matthew Flatt, and Matthias Felleisen. 2001. Modeling an algebraic stepper. In Proceedings of the European Symposium on Programming, 320--334.
[4]
John Clements, Ayswarya Sundaram, and David Herman. 2008. Implementing continuation marks in JavaScript. In Proceedings of the Scheme and Functional Programming Workshop, 1--10.
[5]
R. Kent Dybvig. 2009. Chez Scheme Version 8 User’s Guide. Cadence Research Systems.
[6]
R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. 1993. Syntax abstraction in scheme. In LISP and Symbolic Computation.
[7]
Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. 2002. DrScheme: A programming environment for scheme. J. Funct. Program. 12, 2 (2002), 159--182.
[8]
Robert Bruce Findler and Matthias Felleisen. 2002. Contracts for higher-order functions. In Proceedings of the International Conference on Functional Programming. Retrieved from
[9]
Matthew Flatt and Eli Barzilay. 2009. Keyword and optional arguments in PLT scheme. In Proceedings of the Workshop on Scheme and Functional Programming.
[10]
Matthew Flatt and PLT. 2010. Reference: Racket. PLT Inc., PLT-TR-2010-1. Retrieved from
[11]
Tony Garnock-Jones, Sam Tobin-Hochstadt, and Matthias Felleisen. 2014. The network as a language construct. In Proceedings of the European Symposium on Programming Languages, 473--492.
[12]
Matthias Hauswirth, Peter F. Sweeney, Amer Diwan, and Michael Hind. 2004. Vertical profiling. In Proceedings of the ACM International Conference on Object-oriented Programming, Systems, Languages, and Applications, 251--269.
[13]
Carl Hewitt, Peter Bishop, and Richard Steiger. 1973. A universal modular ACTOR formalism for artificial intelligence. In Proceedings of the International Joint Conference on Artificial Intelligence.
[14]
Milan Jovic and Matthias Hauswirth. 2011. Listener latency profiling. Sci. Comput. Program. 19, 4 (2011), 1054--1072.
[15]
Jonas Maebe, Dries Buytaert, Lieven Eeckhout, and Koen De Bosschere. 2006. Javana: A system for building customized Java program analysis tools. In Proceedings of the ACM International Conference on Object-oriented Programming, Systems, Languages, and Applications. Retrieved from
[16]
Simon Marlow, José Iborra, Bernard Pope, and Andy Gill. 2007. A lightweight interactive debugger for Haskell. In Proceedings of the Haskell Workshop, 13--24.
[17]
Jay McCarthy. 2010. The two-state solution: Native and serializable continuations accord. In Proceedings of the ACM International Conference on Object-oriented Programming, Systems, Languages, and Applications, 567--582.
[18]
Scott Moore, Christos Dimoulas, Dan King, and Stephen Chong. 2014. SHILL: A secure shell scripting language. In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation. Retrieved from https://www.usenix.org/conference/osdi14/technical-sessions/presentation/moore.
[19]
Floréal Morandat, Brandon Hill, Leo Osvald, and Jan Vitek. 2012. Evaluating the design of the R language. In Proceedings of the European Conference on Object-Oriented Programming. Retrieved from
[20]
Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney. 2010. Evaluating the accuracy of Java profilers. In Proceedings of the Conference on Programming Languages Design and Implementation, 187--197.
[21]
Nicholas Nethercote and Julian Seward. 2007. Valgrind: A framework for heavyweight dynamic binary instrumentation. In Proceedings of the Conference on Programming Languages Design and Implementation. Retrieved from
[22]
Greg Pettyjohn, John Clements, Joe Marshall, Shriram Krishnamurthi, and Matthias Felleisen. 2005. Continuations from generalized stack inspection. In Proceedings of the International Conference on Functional Programming, 216--227.
[23]
R Development Core Team. 2016. R Language Definition. R Development Core Team, 3.3.1. Retrieved from http://web.mit.edu/∼r/current/arch/amd64_linux26/lib/R/doc/manual/R-lang.pdf.
[24]
Jeremy Singer and Chris Kirkham. 2008. Dynamic analysis of Java program concepts for visualization and profiling. Sci. Comput. Program. 70, 2--3 (2008), 111--126.
[25]
Vincent St-Amour, Leif Andersen, and Matthias Felleisen. 2012. Feature-specific profiling. In Proceedings of the International Conference on Compiler Construction. Retrieved from
[26]
Vincent St-Amour, Sam Tobin-Hochstadt, and Matthias Felleisen. 2012. Optimization coaching: Optimizers learn to communicate with programmers. In Proceedings of the ACM International Conference on Object-oriented Programming, Systems, Languages, and Applications, 163--178.
[27]
Juan M. Tamayo, Alex Aiken, Nathan Bronson, and Mooly Sagiv. 2012. Understanding the behavior of database operations under program control. In Proceedings of the ACM International Conference on Object-oriented Programming, Systems, Languages, and Applications, 983--996.
[28]
Sam Tobin-Hochstadt and Matthias Felleisen. 2008. The design and implementation of typed scheme. In Proceedings of the Conference on Principles of Programming Languages, 395--406.
[29]
Hadley Wickham. 2014. Advanced R, 1st ed. Chapman and Hall/CRC. Retrieved from http://adv-r.had.co.nz/.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 41, Issue 1
March 2019
235 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/3299867
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 the author(s) 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].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 December 2018
Accepted: 01 September 2018
Revised: 01 May 2018
Received: 01 August 2017
Published in TOPLAS Volume 41, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Profiling
  2. performance monitoring

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)122
  • Downloads (Last 6 weeks)21
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media