## Automated Benchmarking of Functional Data Structures (1999)

Venue: | In Practical Aspects of Declarative Languages |

Citations: | 5 - 2 self |

### BibTeX

@INPROCEEDINGS{Moss99automatedbenchmarking,

author = {Graeme E. Moss and Colin Runciman},

title = {Automated Benchmarking of Functional Data Structures},

booktitle = {In Practical Aspects of Declarative Languages},

year = {1999},

pages = {1--15}

}

### OpenURL

### 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. 1 Motivation Recent years have seen renewed interest in purely functional data structures: sets [Ada93], random-access lists [Oka95], priority queues [BO96], arrays [OB97], gr...

### Citations

233 | Purely Functional Data Structures - Okasaki - 1998 |

36 |
Efficient applicative data types
- Myers
- 1984
(Show Context)
Citation Context ...ompare these two methods. 4.1 Aim We aim to measure the performance of six implementations of random-access lists: Naive (ordinary lists), Threaded Skew Binary (Myers' stacks [Mye83]), AVL (AVL trees =-=[Mye84]-=-), Braun (Braun trees [Hoo92]), Slowdown (Kaplan and Tarjan's deques [KT95]), and Skew Binary (Okasaki's lists [Oka95]). We will qualify this performance by two properties of use: -- Lookup factor. Th... |

29 | Functional programming with graphs
- Erwig
- 1997
(Show Context)
Citation Context ... list will be used. 1 Motivation Recent years have seen renewed interest in purely functional data structures: sets [Ada93], random-access lists [Oka95], priority queues [BO96], arrays [OB97], graphs =-=[Erw97]-=-, and so on. But, empirical performance receives little attention, and is usually based on a few hand-picked benchmarks. Furthermore, the performance of a data structure usually varies according to ho... |

25 |
Persistent lists with catenation via recursive slow-down
- Kaplan, Tarjan
- 1995
(Show Context)
Citation Context ...mplementations of random-access lists: Naive (ordinary lists), Threaded Skew Binary (Myers' stacks [Mye83]), AVL (AVL trees [Mye84]), Braun (Braun trees [Hoo92]), Slowdown (Kaplan and Tarjan's deques =-=[KT95]-=-), and Skew Binary (Okasaki's lists [Oka95]). We will qualify this performance by two properties of use: -- Lookup factor. The number of applications of lookup divided by the number of applications of... |

18 | Optimal purely functional priority queues
- Brodal, Okasaki
- 1996
(Show Context)
Citation Context ...entation, according to how the list will be used. 1 Motivation Recent years have seen renewed interest in purely functional data structures: sets [Ada93], random-access lists [Oka95], priority queues =-=[BO96]-=-, arrays [OB97], graphs [Erw97], and so on. But, empirical performance receives little attention, and is usually based on a few hand-picked benchmarks. Furthermore, the performance of a data structure... |

17 | Purely functional random-access lists
- Okasaki
- 1995
(Show Context)
Citation Context ...random-access list implementation, according to how the list will be used. 1 Motivation Recent years have seen renewed interest in purely functional data structures: sets [Ada93], random-access lists =-=[Oka95]-=-, priority queues [BO96], arrays [OB97], graphs [Erw97], and so on. But, empirical performance receives little attention, and is usually based on a few hand-picked benchmarks. Furthermore, the perform... |

16 |
Efficient sets – a balancing act
- Adams
- 1993
(Show Context)
Citation Context ...ision tree for the choice of random-access list implementation, according to how the list will be used. 1 Motivation Recent years have seen renewed interest in purely functional data structures: sets =-=[Ada93]-=-, random-access lists [Oka95], priority queues [BO96], arrays [OB97], graphs [Erw97], and so on. But, empirical performance receives little attention, and is usually based on a few hand-picked benchma... |

13 | An applicative random-access stack
- Myers
- 1983
(Show Context)
Citation Context ...manually. We shall then compare these two methods. 4.1 Aim We aim to measure the performance of six implementations of random-access lists: Naive (ordinary lists), Threaded Skew Binary (Myers' stacks =-=[Mye83]-=-), AVL (AVL trees [Mye84]), Braun (Braun trees [Hoo92]), Slowdown (Kaplan and Tarjan's deques [KT95]), and Skew Binary (Okasaki's lists [Oka95]). We will qualify this performance by two properties of ... |

13 | A new method for functional arrays
- O’Neill, Burton
- 1997
(Show Context)
Citation Context ...ding to how the list will be used. 1 Motivation Recent years have seen renewed interest in purely functional data structures: sets [Ada93], random-access lists [Oka95], priority queues [BO96], arrays =-=[OB97]-=-, graphs [Erw97], and so on. But, empirical performance receives little attention, and is usually based on a few hand-picked benchmarks. Furthermore, the performance of a data structure usually varies... |

8 |
A logarithmic implementation of flexible arrays
- Hoogerwoord
(Show Context)
Citation Context ... Aim We aim to measure the performance of six implementations of random-access lists: Naive (ordinary lists), Threaded Skew Binary (Myers' stacks [Mye83]), AVL (AVL trees [Mye84]), Braun (Braun trees =-=[Hoo92]-=-), Slowdown (Kaplan and Tarjan's deques [KT95]), and Skew Binary (Okasaki's lists [Oka95]). We will qualify this performance by two properties of use: -- Lookup factor. The number of applications of l... |

4 | Auburn: A kit for benchmarking functional data structures
- Moss, Runciman
- 1997
(Show Context)
Citation Context ...st is removed in the same way, till node 3n represents the last element, and node 3n + 1 represents the empty list. This is how Sum sums the list of n integers. The authors introduced such a graph in =-=[MR97]-=-, given the name datatype usage graph, or dug. The definition was informal in [MR97] but we shall now give a brief formal definition. To abstract over many competing data structures providing similar ... |

1 |
Benchmarking Functional Data Structures. DPhil thesis
- Moss
- 1999
(Show Context)
Citation Context ...aking up a profile reflect important characteristics of datatype usage. They are fashioned to make benchmark generation easy. Other reasons for choosing these properties are not discussed here -- see =-=[Mos99]-=-. Definition 5 (Profile) The profile of a dug comprises five properties: -- Generation weights : The ratio of the number of nodes labelled with each generator. -- Mutation-observation weights : The ra... |