#lang scribble/doc @(require scribble/manual scribble/eval (planet cce/scheme:4:1/planet) (for-label (this-package-in run-benchmarks) (this-package-in benchmarks/ra-list) (this-package-in benchmarks/freq-count) (this-package-in benchmarks/garden-fence))) @(define the-eval (let ([the-eval (make-base-eval)]) (the-eval `(require (planet ,(this-package-version-symbol benchmarks/ra-list)) (planet ,(this-package-version-symbol benchmarks/freq-count)) (planet ,(this-package-version-symbol benchmarks/garden-fence)))) the-eval)) @title[#:tag "run-benchmarks"]{Benchmarks} @defmodule/this-package[run-benchmarks] Runs all of the benchmarks for this package. @section{Random-access vs. Sequential-access lists} @defmodule/this-package[benchmarks/ra-list] This benchmark compares the performance of typical list operations for random and sequential lists. @defproc[(run-ra-list-benchmark) void?]{Runs this benchmark.} @;examples[#:eval the-eval (run-ra-list-benchmark)] @section{Frequency counting} @defmodule/this-package[benchmarks/freq-count] This benchmark compares an number of imperative and functional solutions to the problem of counting the frequencies of each number in a given list of numbers. See the thread starting @link["http://list.cs.brown.edu/pipermail/plt-scheme/2009-April/032250.html"]{here} for discussion. @defproc[(run-freq-count-benchmark) void?]{Runs this benchmark.} @;examples[#:eval the-eval (run-freq-count-benchmark)] @section{Garden fence encryption} @defmodule/this-package[benchmarks/garden-fence] This benchmark compares an imperative vector and an analogous purely-functional solution to the problem of garden fence encryption. Provided that the cleartext is "diesisteinklartext" then the text has to be processed into a zigzag-like form. The "key" is the number of lines in the zigzag. An example: @verbatim[#<