Skip to main content

Automated Benchmarking of Functional Data Structures

  • Conference paper
  • First Online:
Practical Aspects of Declarative Languages (PADL 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1551))

Included in the following conference series:

  • 399 Accesses

Abstract

Despite a lot of recent interest in purely functional data structures, for example [Ada93, Oka95, BO96, Oka96, OB97, Erw97], few have been benchmarked. Of these, even fewer have their performance qualified by how they are used. But how a data structure is used can significantly affect performance. This paper makes three original contributions. (1) We present an algorithm for generating a benchmark according to a given use of data structure. (2) We compare use of an automated tool based on this algorithm, with the traditional technique of hand-picked benchmarks, by benchmarking six implementations of random-access list using both methods. (3) We use the results of this benchmarking to present a decision tree for the choice of random-access list implementation, according to how the list will be used.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Stephen R. Adams. Efficient sets-a balancing act. Journal of Functional Programming, 3(4):553–561, October 1993.

    Article  Google Scholar 

  2. The Auburn Home Page. http://www.cs.york.ac.uk/~gem/auburn/.

  3. Gerth S. Brodal and Chris Okasaki. Optimal purely functional priority queues. Journal of Functional Programming, 6(6):839–857, November 1996.

    MATH  Google Scholar 

  4. Martin Erwig. Functional programming with graphs. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, pages 52–65. ACM Press, June 1997.

    Google Scholar 

  5. Rob R. Hoogerwoord. A logarithmic implementation of flexible arrays. In Proceedings of the Second International Conference on the Mathematics of Program Construction, volume 669 of LNCS, pages 191–207, July 1992.

    Google Scholar 

  6. Haim Kaplan and Robert E. Tarjan. Persistent lists with catenation via recursive slow-down. In Proceedings of the 27th Annual ACM Symposium on Theory of Computing, pages 93–102, May 1995.

    Google Scholar 

  7. Graeme E. Moss. Benchmarking Functional Data Structures. DPhil thesis, University of York, 1999. To be submitted.

    Google Scholar 

  8. Graeme E. Moss and Colin Runciman. Auburn: A kit for benchmarking functional data structures. In Proceedings of IFL’ 97, volume 1467 of LNCS, pages 141–160, September 1997.

    Google Scholar 

  9. Eugene W. Myers. An applicative random-access stack. Information Processing Letters, 17(5):241–248, December 1983.

    Google Scholar 

  10. Eugene W. Myers. Efficient applicative data types. In Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, pages 66–75, 1984.

    Google Scholar 

  11. Melissa E. O’Neill and F. Warren Burton. A new method for functional arrays. Journal of Functional Programming, 7(5):487–513, September 1997.

    Google Scholar 

  12. Chris Okasaki. Purely functional random-access lists. In Conference Record of FPCA’ 95, pages 86–95. ACM Press, June 1995.

    Google Scholar 

  13. Chris Okasaki. Purely Functional Data Structures. PhD thesis, School of Computer Science, Carnegie Mellon University, September 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Moss, G.E., Runciman, C. (1998). Automated Benchmarking of Functional Data Structures. In: Gupta, G. (eds) Practical Aspects of Declarative Languages. PADL 1999. Lecture Notes in Computer Science, vol 1551. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49201-1_1

Download citation

  • DOI: https://doi.org/10.1007/3-540-49201-1_1

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65527-5

  • Online ISBN: 978-3-540-49201-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics