Abstract
In this paper, we perform a thorough performance analysis of the containers package, the de facto standard Haskell containers library, comparing it to the most of existing alternatives on HackageDB. We then significantly improve its performance, making it comparable to the best implementations available. Additionally, we describe a new persistent data structure based on hashing, which offers the best performance out of available data structures containing Strings and ByteStrings.
Supplemental Material
- }}S. Adams. Efficient sets - a balancing act. J. Funct. Program., 3 (4): 553--561, 1993.Google Scholar
Cross Ref
- }}G. M. Adelson-Velskii and E. M. Landis. An algorithm for the organization of information. Dokladi Akademia Nauk SSSR, (146), 1962.Google Scholar
- }}P. Bagwell. Ideal hash trees. Es Grands Champs, 1195, 2001.Google Scholar
- }}J. Bentley and R. Sedgewick. Ternary search trees. Dr. Dobb's Journal, April 1998.Google Scholar
- }}J. R. Driscoll, N. Sarnak, D. D. Sleator, and R. E. Tarjan. Making data structures persistent. Journal of Computer and System Sciences, 38 (1): 86--124, 1989. ISSN 0022-0000. Google Scholar
Digital Library
- }}J. Goubault. Himml: Standard ml with fast sets and maps. In In 5th ACM SIGPLAN Workshop on ML and its Applications. ACM Press, 1994.Google Scholar
- }}L. J. Guibas and R. Sedgewick. A dichromatic framework for balanced trees. Foundations of Computer Science, Annual IEEE Symposium on, 0: 8--21, 1978. ISSN 0272-5428. Google Scholar
Digital Library
- }}R. Hinze and R. Paterson. Finger trees: a simple general-purpose data structure. J. Funct. Program., 16 (2): 197--217, 2006. ISSN 0956-7968. Google Scholar
Digital Library
- }}S. L. P. Jones, N. Ramsey, and F. Reig. C--: A portable assembly language that supports garbage collection. In PPDP, pages 1--28, 1999. Google Scholar
Digital Library
- }}D. E. Knuth. The art of computer programming, volume 3: (2nd ed.) sorting and searching. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA, 1998. ISBN 0-201-89685-0. Google Scholar
Digital Library
- }}C. Okasaki. Purely Functional Data Structures. Cambridge University Press, July 1999. ISBN 0521663504. Google Scholar
Digital Library
- }}C. Okasaki and A. Gill. Fast mergeable integer maps. In In Workshop on ML, pages 77--86, 1998.Google Scholar
- }}A. Stepanov and M. Lee. The standard template library. Technical report, WG21/N0482, ISO Programming Language C++ Project, 1994.Google Scholar
- }}D. A. Terei. Low level virtual machine for glasgow haskell compiler, 2009. URL http://www.cse.unsw.edu.au/pls/thesis/davidt-thesis.pdf.Google Scholar
- }}A. Tolmach. An external representation for the ghc core language, 2001. URL http://www.haskell.org/ghc/docs/papers/core.ps.gz.Google Scholar
Index Terms
The performance of the Haskell containers package
Recommendations
The performance of the Haskell containers package
Haskell '10: Proceedings of the third ACM Haskell symposium on HaskellIn this paper, we perform a thorough performance analysis of the containers package, the de facto standard Haskell containers library, comparing it to the most of existing alternatives on HackageDB. We then significantly improve its performance, making ...
The Intel labs Haskell research compiler
Haskell '13The Glasgow Haskell Compiler (GHC) is a well supported optimizing compiler for the Haskell programming language, along with its own extensions to the language and libraries. Haskell's lazy semantics imposes a runtime model which is in general difficult ...
The Intel labs Haskell research compiler
Haskell '13: Proceedings of the 2013 ACM SIGPLAN symposium on HaskellThe Glasgow Haskell Compiler (GHC) is a well supported optimizing compiler for the Haskell programming language, along with its own extensions to the language and libraries. Haskell's lazy semantics imposes a runtime model which is in general difficult ...







Comments