(Arne Babenhauserheide)
2017-03-30: add string append benchmark add string append benchmark
diff --git a/examples/benchmark.w b/examples/benchmark.w --- a/examples/benchmark.w +++ b/examples/benchmark.w @@ -140,6 +140,32 @@ define : benchmark-list-append-100-m ste bench-append (zip (logiota steps 100 0) (logiota steps 1 1000)) +define : bench-append-string param-list + . "Test (append a b) with lists of lengths from the param-list." + zip param-list + map + lambda (x) + let : (N (list-ref x 0)) (m (list-ref x 1)) + benchmark (string-append a b) :let ((a (make-string N))(b (make-string m))) + . param-list + +define : benchmark-string-append-N-1 steps + . "Test (append a b) with lists with lengths N and 1." + bench-append-string (zip (logiota steps 1 1000) (logiota steps 1 0)) + +define : benchmark-string-append-N-100 steps + . "Test (append a b) with lists with lengths N and 1." + bench-append-string (zip (logiota steps 1 1000) (logiota steps 100 0)) + +define : benchmark-string-append-1-m steps + . "Test (append a b) with lists with lengths N and 1." + bench-append-string (zip (logiota steps 1 0) (logiota steps 1 1000)) + +define : benchmark-string-append-100-m steps + . "Test (append a b) with lists with lengths N and 1." + bench-append-string (zip (logiota steps 100 0) (logiota steps 1 1000)) + + ;; prepare a multi-function fit import only : examples ensemble-estimation @@ -315,10 +341,14 @@ scalarMap = mpl.cm.ScalarMappable(norm=c define : main args let* - : H : lambda (x pos) (H-N-m x pos #:const #t #:ON #t #:ONlogN #t) - steps 200 + : H : lambda (x pos) (H-N-m x pos #:const #t #:ON #t #:ONlogN #t #:OlogN #:Ologm #:Om #:Omlogm) + steps 20 pbr plot-benchmark-result pbr (benchmark-list-append-N-1 steps) H #:filename "/tmp/benchmark-N-1.pdf" pbr (benchmark-list-append-N-100 steps) H #:filename "/tmp/benchmark-N-100.pdf" pbr (benchmark-list-append-1-m steps) H #:filename "/tmp/benchmark-1-m.pdf" pbr (benchmark-list-append-100-m steps) H #:filename "/tmp/benchmark-100-m.pdf" + pbr (benchmark-string-append-N-1 steps) H #:filename "/tmp/benchmark-string-N-1.pdf" + pbr (benchmark-string-append-N-100 steps) H #:filename "/tmp/benchmark-string-N-100.pdf" + pbr (benchmark-string-append-1-m steps) H #:filename "/tmp/benchmark-string-1-m.pdf" + pbr (benchmark-string-append-100-m steps) H #:filename "/tmp/benchmark-string-100-m.pdf"