(Arne Babenhauserheide)
2017-04-11: shared string append shared string append
diff --git a/examples/benchmark.w b/examples/benchmark.w
--- a/examples/benchmark.w
+++ b/examples/benchmark.w
@@ -302,6 +302,13 @@ define : bench-append-string param-list
benchmark (string-append a b) :let ((a (make-string N))(b (make-string m)))
zip param-list : map f param-list
+define : bench-append-string/shared param-list
+ . "Test (string-append/shared a b) with lists of lengths from the param-list."
+ define : f x
+ let : (N (list-ref x 0)) (m (list-ref x 1))
+ benchmark (string-append/shared a b) :let ((a (make-string N))(b (make-string m)))
+ zip param-list : map f param-list
+
;; Vector benchmarks
define : bench-append-vector param-list
. "Test (vector-append a b) with lists of lengths from the param-list."
@@ -610,9 +617,14 @@ define : main args
pbr (bench-append-string param-list) H-lin
. #:title : title "string-append (make-string N) (make-string m)"
. #:filename : filename "string-append"
+ pbr (bench-append-string/shared param-list) H-lin
+ . #:title : title "string-append/shared (make-string N) (make-string m)"
+ . #:filename : filename "string-append-shared"
+ ;; vectors
pbr (bench-append-vector param-list) H-lin
. #:title : title "vector-append (make-vector N 1) (make-vector m 1)"
. #:filename : filename "vector-append"
+ ;; maps
pbr (bench-assoc param-list) H
. #:title : title "assoc m '((1 . 1) (2 . 2) ... (N . N))"
. #:filename : filename "assoc"