Skip to main content Accessibility help
×
×
Home

Heap profiling of lazy functional programs

  • Colin Runciman (a1) and David Wakeling (a1)
Abstract

We describe the design, implementation and use of a new kind of profiling tool that yields valuable information about the memory use of lazy functional programs. The tool has two parts: a modified functional language implementation which generates profiling information during the execution of programs, and a separate program which converts this information to graphical form. With the aid of profile graphs, one can make alterations to a functional program which dramatically reduce its space consumption. We demonstrate this in the case of a genuine example - the first to which the tool was applied - for which the results are strikingly successful.

Copyright
References
Hide All
Appel, A. W. 1992. Compiling With Continuations. Cambridge University Press.
Augustsson, L. 1987. Compiling Lazy Functional Languages, Part II. PhD Thesis, Chalmers University of Technology, S-412 96 Göteborg, 11.
Augustsson, L. and Johnsson, T. 1989. The Chalmers Lazy-ML Compiler. Computer Journal 32(2): 127141, 04.
Bjerner, B. and Holmström, A. 1989. A compositional approach to time analysis of first order lazy functional programs. In Proceedings Conference on Functional Programming Languages and Computer Architecture, 157165. ACM Press, 09.
Hartel, P. H. and Veen, A. H. 1988. Statistics on graph reduction of SASL programs. Software-Practice and Experience 18: 239253.
Hughes, R. J. M. 1984. The Design and Implementation of Programming Languages. PhD Thesis, Oxford University, 09.
Hughes, R. J. M. 1992. A loop-detecting interpreter for lazy, higher-order programs. In Proceedings 5th Glasgow Workshop on Functional Programming, 07.
Johnsson, T. 1985. Lambda lifting: Transforming programs to recursive equations. In Proceedings Conference on Functional Programming Languages and Computer Architecture, 190203Springer-Verlag, 09.
Johnsson, T. 1987. Compiling Lazy Functional Languages. PhD Thesis, Chalmers University of Technology, S-412 96 Göteborg, 02.
Jones, R. 1992. Tail recursion without space leaks. Journal of Functional Programming 2(1): 7379, 01.
Kozato, Y. and Otto, G. P. 1992. Geometric transformations in a lazy functional language. In Proceedings 11th International Conference on Pattern Recognition, 08.
Manna, Z. and Waldinger, R. 1985. The Logical Basis for Computer Programming (Volume 1: Deductive Reasoning). Addison-Wesley.
Meira, S. L. 1985. On the Efficiency of Applicative Algorithms. PhD Thesis, University of Kent at Canterbury, 03.
Peyton Jones, S. L. 1987. The Implementation of Functional Programming Languages. Prentice-Hall.
Peyton Jones, S. L. 1992. Implementation of Functional Languages on Stock Hardware: The Spineless Tagless G-machine. Journal of Functional Programming 2(2): 127202, 04.
Runciman, C. and Wakeling, D. 1990. Problems and proposals for time and space profiling of functional programs. In Proceedings Glasgow Workshop on Functional Programming, 237245, Springer-Verlag, 08.
Runciman, C. and Wakeling, D. 1992. Heap Profiling of a lazy functional compiler. In Proceedings Glasgow Workshop on Functional Programming, Springer-Verlag, 08.
Runciman, C. and Wakeling, D. 1992. Heap Profiling of Lazy Functional Programs. Technical Report 172, Department of Computer Science, University of York, 04.
Sands, D. 1991. Time analysis, cost equivalence and program refinement. In Proceedings Conference on the Foundations of Software Technology and Theoretical Computer Science, 2539. Springer-Verlag, 12.
Sansom, P. 1992. Profiling Lazy Functional Languages. Draft Memorandum, Department of Computing Science, University of Glasgow, 01.
Stoye, W. 1986. The Implementation of Functional Languages Using Custom Hardware. PhD Thesis, University of Cambridge Computer Laboratory, 12 (Technical Report No. 81).
Tufte, E. R. 1983. The Visual Display of Quantitative Information. Graphics Press, Cheshire, Connecticut.
van der Poel, W. M.The Mechanization of the Lambda Calculus. Undated typescript, University of Technology, Delft, The Netherlands.
Wadler, P. 1987. Fixing some space leaks with a garbage collector. Software-Practice and Experience 17 (9): 595608, 09.
Wadler, P. 1988. Strictness analysis aids time analysis. In Fifteenth Annual ACM Symposium on the Principles of Programming Languages, 119131, 01.
Wray, S. C. 1986. Implementation and Programming Techniques for Functional Languages. PhD Thesis, University of Cambridge Computer Laboratory, 01 (Technical Report No. 92).
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed

Heap profiling of lazy functional programs

  • Colin Runciman (a1) and David Wakeling (a1)
Submit a response

Discussions

No Discussions have been published for this article.

×

Reply to: Submit a response


Your details


Conflicting interests

Do you have any conflicting interests? *