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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Stephen R. Adams. Efficient sets-a balancing act. Journal of Functional Programming, 3(4):553–561, October 1993.
The Auburn Home Page. http://www.cs.york.ac.uk/~gem/auburn/.
Gerth S. Brodal and Chris Okasaki. Optimal purely functional priority queues. Journal of Functional Programming, 6(6):839–857, November 1996.
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.
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.
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.
Graeme E. Moss. Benchmarking Functional Data Structures. DPhil thesis, University of York, 1999. To be submitted.
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.
Eugene W. Myers. An applicative random-access stack. Information Processing Letters, 17(5):241–248, December 1983.
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.
Melissa E. O’Neill and F. Warren Burton. A new method for functional arrays. Journal of Functional Programming, 7(5):487–513, September 1997.
Chris Okasaki. Purely functional random-access lists. In Conference Record of FPCA’ 95, pages 86–95. ACM Press, June 1995.
Chris Okasaki. Purely Functional Data Structures. PhD thesis, School of Computer Science, Carnegie Mellon University, September 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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