~ chicken-core (chicken-5) 9c742da9256dc4a7219c0d4e10cec07b83143551
commit 9c742da9256dc4a7219c0d4e10cec07b83143551 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Sun Nov 14 17:50:03 2010 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Sun Nov 14 17:50:03 2010 +0100 added allocation benchmark diff --git a/distribution/manifest b/distribution/manifest index f8437edf..e0e083d8 100644 --- a/distribution/manifest +++ b/distribution/manifest @@ -96,6 +96,7 @@ stub.scm support.scm tcp.scm tests/thread-list.scm +tests/gobble.scm tests/test-optional.scm tests/arithmetic-test.scm tests/arithmetic-test.32.expected diff --git a/tests/gobble.scm b/tests/gobble.scm new file mode 100644 index 00000000..b587bb14 --- /dev/null +++ b/tests/gobble.scm @@ -0,0 +1,26 @@ +;;;; gobble.scm +; +; usage: csi -s gobble.scm [COUNT] + + +(define (run n) + (print "allocating " n " bytes ...") + (let loop ((k 0)) + (when (< k n) + (let ((x (make-string 1000))) + (when (and (zero? (modulo k 100000)) (##sys#fudge 13)) + (print* ".")) + (loop (+ k 1000)))))) + +(run (string->number (optional (command-line-arguments) "1000000000"))) +(newline) + + +; time csi -s gobble.scm 1000000000 +; 5 secs +; +; csc goobble.scm -o a.out -O4 -b -d0 +; time a.out 1000000000 +; 3 secs +; +; (x86, Core2 Duo, 2.4Ghz, 2GB RAM) diff --git a/tests/runbench.sh b/tests/runbench.sh index c673e53c..61154435 100644 --- a/tests/runbench.sh +++ b/tests/runbench.sh @@ -65,4 +65,8 @@ run echo "======================================== threads ... " $compile thread-list.scm -O4 -d0 -fb -run +run 1000000 + +echo "======================================== allocation ... " +$compile gobble.scm -O4 -d0 -b +run 1000000000 diff --git a/tests/thread-list.scm b/tests/thread-list.scm index eabc0942..74ffdd6b 100644 --- a/tests/thread-list.scm +++ b/tests/thread-list.scm @@ -19,26 +19,26 @@ (sub1 n) (make-thread (lambda () - (thread-start! prev) - (bump n)))))))) + (bump n) + (thread-start! prev)))))))) (define (bump n) (set! count (sub1 count)) (cond ((zero? count) (newline) (exit)) - ((zero? (modulo n 1000)) + ((and (zero? (modulo n 10000)) (##sys#fudge 13)) (print* ".")))) (run (string->number (optional (command-line-arguments) "250000"))) (thread-sleep! 604800) -; time csi -s thread-list.scm 1000000 -:h1g -:d +; time csi -s thread-list.scm 1000000 -:h1g ; 11 secs ; ; csc thread-list.scm -o a.out -v -O4 -f -d0 -; time a.out 1000000 -:h1g -:d +; time a.out 1000000 -:h1g ; 4 secs ; ; (x86, Core2 Duo, 2.4Ghz, 2GB RAM)Trap