Skip to main content

Feature-Specific Profiling

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 9031)


High-level languages come with significant readability and maintainability benefits. Their performance costs, however, are usually not predictable, at least not easily. Programmers may accidentally use high-level features in ways that compiler writers could not anticipate, and they may thus produce underperforming programs as a result.

This paper introduces feature-specific profiling, a profiling technique that reports performance costs in terms of linguistic constructs. With a feature-specific profiler, a programmer can identify specific instances of language features that are responsible for performance problems. After explaining the architecture of our feature-specific profiler, the paper presents the evidence in support of adding feature-specific profiling to the programmer’s toolset.


  • Linguistic Feature
  • Feature Mark
  • User Code
  • Latent Mark
  • Contract System

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  • Clements, J., Flatt, M., Felleisen, M.: Modeling an algebraic stepper. In: Sands, D. (ed.) ESOP 2001. LNCS, vol. 2028, pp. 320–334. Springer, Heidelberg (2001)

    CrossRef  Google Scholar 

  • Clements, J., Sundaram, A., Herman, D.: Implementing continuation marks in JavaScript. In: Proc. Scheme Works., pp. 1–10 (2008)

    Google Scholar 

  • Findler, R.B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S., Steckler, P., Felleisen, M.: DrScheme: A programming environment for Scheme. JFP 12(2), 159–182 (2002)

    MATH  Google Scholar 

  • Findler, R.B., Felleisen, M.: Contracts for higher-order functions. In: Proc. ICFP, pp. 48–59 (2002)

    Google Scholar 

  • Matthew Flatt and PLT. Reference: Racket. PLT Inc., PLT-TR-2010-1 (2010),

  • Garnock-Jones, T., Tobin-Hochstadt, S., Felleisen, M.: The network as a language construct. In: Shao, Z. (ed.) ESOP 2014. LNCS, vol. 8410, pp. 473–492. Springer, Heidelberg (2014)

    Google Scholar 

  • Hauswirth, M., Sweeney, P.F., Diwan, A., Hind, M.: Vertical profiling. In: Proc. OOPSLA, pp. 251–269 (2004)

    Google Scholar 

  • Jovic, M., Hauswirth, M.: Listener latency profiling. SCP 19(4), 1054–1072 (2011)

    Google Scholar 

  • Maebe, J., Buytaert, D., Eeckhout, L., De Bosschere, K.: Javana: A system for building customized Java program analysis tools. In: Proc. OOPSLA, pp. 153–168 (2006)

    Google Scholar 

  • Marlow, S., Iborra, J., Pope, B., Gill, A.: A lightweight interactive debugger for Haskell. In: Proc. Haskell Works., pp. 13–24 (2007)

    Google Scholar 

  • McCarthy, J.: The two-state solution: native and serializable continuations accord. In: Proc. OOPSLA, pp. 567–582 (2010)

    Google Scholar 

  • Moore, A.S., Dimoulas, C., King, D., Chong, S.: SHILL: A secure shell scripting language. In: Proc. OSDI (2014)

    Google Scholar 

  • Morandat, F., Hill, B., Osvald, L., Vitek, J.: Evaluating the Design of the R Language. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 104–131. Springer, Heidelberg (2012)

    CrossRef  Google Scholar 

  • Mytkowicz, T., Diwan, A., Hauswirth, M., Sweeney, P.F.: Evaluating the accuracy of Java profilers. In: Proc. PLDI, pp. 187–197 (2010)

    Google Scholar 

  • Nethercote, N., Seward, J.: Valgrind: A framework for heavyweight dynamic binary instrumentation. In: Proc. PLDI, pp. 89–100 (2007)

    Google Scholar 

  • Pettyjohn, G., Clements, J., Marshall, J., Krishnamurthi, S., Felleisen, M.: Continuations from generalized stack inspection. In: Proc. ICFP, pp. 216–227 (2005)

    Google Scholar 

  • Singer, J., Kirkham, C.: Dynamic analysis of Java program concepts for visualization and profiling. SCP 70(2-3), 111–126 (2008)

    MATH  MathSciNet  Google Scholar 

  • St-Amour, V., Tobin-Hochstadt, S., Felleisen, M.: Optimization coaching: Optimizers learn to communicate with programmers. In: Proc. OOPSLA, pp. 163–178 (2012)

    Google Scholar 

  • Strickland, T.S., Felleisen, M.: Contracts for first-class classes. In: Proc. DLS, pp. 97–112 (2010)

    Google Scholar 

  • Strickland, T.S., Tobin-Hochstadt, S., Findler, R.B., Flatt, M.: Chaperones and impersonators. In: Proc. OOPSLA, pp. 943–962 (2012)

    Google Scholar 

  • Tamayo, J.M., Aiken, A., Bronson, N., Sagiv, M.: Understanding the behavior of database operations under program control. In: Proc. OOPSLA, pp. 983–996 (2012)

    Google Scholar 

  • Tobin-Hochstadt, S., Felleisen, M.: Interlanguage refactoring: From scripts to programs. In: Proc. DLS, pp. 964–974 (2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Vincent St-Amour .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2015 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

St-Amour, V., Andersen, L., Felleisen, M. (2015). Feature-Specific Profiling. In: Franke, B. (eds) Compiler Construction. CC 2015. Lecture Notes in Computer Science(), vol 9031. Springer, Berlin, Heidelberg.

Download citation

  • DOI:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-46662-9

  • Online ISBN: 978-3-662-46663-6

  • eBook Packages: Computer ScienceComputer Science (R0)