summaryrefslogtreecommitdiff
path: root/gc-benchmarks/string.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gc-benchmarks/string.scm')
-rw-r--r--gc-benchmarks/string.scm25
1 files changed, 25 insertions, 0 deletions
diff --git a/gc-benchmarks/string.scm b/gc-benchmarks/string.scm
new file mode 100644
index 000000000..727016352
--- /dev/null
+++ b/gc-benchmarks/string.scm
@@ -0,0 +1,25 @@
+;;; From from http://www.ccs.neu.edu/home/will/Twobit/KVW/string.txt .
+; string test
+; (try 100000)
+
+(define s "abcdef")
+
+(define (grow)
+ (set! s (string-append "123" s "456" s "789"))
+ (set! s (string-append
+ (substring s (quotient (string-length s) 2) (string-length s))
+ (substring s 0 (+ 1 (quotient (string-length s) 2)))))
+ s)
+
+(define (trial n)
+ (do ((i 0 (+ i 1)))
+ ((> (string-length s) n) (string-length s))
+ (grow)))
+
+(define (try n)
+ (do ((i 0 (+ i 1)))
+ ((>= i 10) (string-length s))
+ (set! s "abcdef")
+ (trial n)))
+
+(try 50000000) \ No newline at end of file