Advertisement

Feature-Specific Profiling

  • Vincent St-Amour
  • Leif Andersen
  • Matthias Felleisen
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9031)

Abstract

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.

Keywords

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)CrossRefGoogle Scholar
  2. Clements, J., Sundaram, A., Herman, D.: Implementing continuation marks in JavaScript. In: Proc. Scheme Works., pp. 1–10 (2008)Google Scholar
  3. 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)zbMATHGoogle Scholar
  4. Findler, R.B., Felleisen, M.: Contracts for higher-order functions. In: Proc. ICFP, pp. 48–59 (2002)Google Scholar
  5. Matthew Flatt and PLT. Reference: Racket. PLT Inc., PLT-TR-2010-1 (2010), http://racket-lang.org/tr
  6. 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
  7. Hauswirth, M., Sweeney, P.F., Diwan, A., Hind, M.: Vertical profiling. In: Proc. OOPSLA, pp. 251–269 (2004)Google Scholar
  8. Jovic, M., Hauswirth, M.: Listener latency profiling. SCP 19(4), 1054–1072 (2011)Google Scholar
  9. 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
  10. Marlow, S., Iborra, J., Pope, B., Gill, A.: A lightweight interactive debugger for Haskell. In: Proc. Haskell Works., pp. 13–24 (2007)Google Scholar
  11. McCarthy, J.: The two-state solution: native and serializable continuations accord. In: Proc. OOPSLA, pp. 567–582 (2010)Google Scholar
  12. Moore, A.S., Dimoulas, C., King, D., Chong, S.: SHILL: A secure shell scripting language. In: Proc. OSDI (2014)Google Scholar
  13. 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)CrossRefGoogle Scholar
  14. Mytkowicz, T., Diwan, A., Hauswirth, M., Sweeney, P.F.: Evaluating the accuracy of Java profilers. In: Proc. PLDI, pp. 187–197 (2010)Google Scholar
  15. Nethercote, N., Seward, J.: Valgrind: A framework for heavyweight dynamic binary instrumentation. In: Proc. PLDI, pp. 89–100 (2007)Google Scholar
  16. Pettyjohn, G., Clements, J., Marshall, J., Krishnamurthi, S., Felleisen, M.: Continuations from generalized stack inspection. In: Proc. ICFP, pp. 216–227 (2005)Google Scholar
  17. Singer, J., Kirkham, C.: Dynamic analysis of Java program concepts for visualization and profiling. SCP 70(2-3), 111–126 (2008)zbMATHMathSciNetGoogle Scholar
  18. 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
  19. Strickland, T.S., Felleisen, M.: Contracts for first-class classes. In: Proc. DLS, pp. 97–112 (2010)Google Scholar
  20. Strickland, T.S., Tobin-Hochstadt, S., Findler, R.B., Flatt, M.: Chaperones and impersonators. In: Proc. OOPSLA, pp. 943–962 (2012)Google Scholar
  21. 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
  22. Tobin-Hochstadt, S., Felleisen, M.: Interlanguage refactoring: From scripts to programs. In: Proc. DLS, pp. 964–974 (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Vincent St-Amour
    • 1
  • Leif Andersen
    • 1
  • Matthias Felleisen
    • 1
  1. 1.PLT @ Northeastern UniversityBostonUSA

Personalised recommendations