1#!/usr/bin/env gosh
2(use gauche.process)
3(use srfi-1)
4(use util.match)
5(use gauche.parseopt)
6
7(define (ntimes-map proc n)
8  (let loop ([i 0]
9             [ret '()])
10    (if (>= i n)
11        ret
12        (loop (+ i 1) (append ret (list (proc)))))))
13
14(define (get-process-error-line lst)
15  (let* ((process (apply run-process `(,@lst :error :pipe :output "/dev/null")))
16         (line (read-line (process-error process) #t)))
17    (process-wait process)
18    line))
19
20
21(define (exec-with-time command)
22  (string->number ((#/([\d\.]+)\s+total/ (get-process-error-line `("zsh" "-c" ,(string-append "time ./mosh " command)))) 1)))
23
24;(sys-system "uname -a")
25;(sys-system "svn info")
26
27(for-each
28 (lambda (file)
29   (format #t "~25a:  ~d\n" file (apply min (ntimes-map (lambda () (exec-with-time file)) 3))))
30 '(
31   "-5 ./misc/bench/fib.scm"
32   "-5 ./misc/bench/tak.scm"
33   "-5 ./misc/bench/triangl.scm"
34   "-5 ./misc/bench/takl.scm"
35   "./misc/bench/empty.scm"
36   "./misc/bench/load-library.scm"
37   "./misc/bench/clos.scm"
38))
39
40;; Linux sewashi 2.6.22-15-generic #1 SMP Tue Oct 21 23:47:12 GMT 2008 i686 GNU/Linux
41;; Path: .
42;; URL: https://mosh-scheme.googlecode.com/svn/trunk
43;; Repository Root: https://mosh-scheme.googlecode.com/svn
44;; Repository UUID: 3dc39933-274d-0410-bf6f-2fa8959f7829
45;; Revision: 740
46;; Node Kind: directory
47;; Schedule: normal
48;; Last Changed Author: kokosabu
49;; Last Changed Rev: 740
50;; Last Changed Date: 2008-11-27 22:27:43 +0900 (Thu, 27 Nov 2008)
51;; ./bench/clos.scm         :  0.61
52;; ./bench/empty.scm        :  0.067
53;; ./bench/load-library.scm :  0.109
54
55;; Linux sewashi 2.6.22-15-generic #1 SMP Tue Oct 21 23:47:12 GMT 2008 i686 GNU/Linux
56;; Path: .
57;; URL: https://mosh-scheme.googlecode.com/svn/trunk
58;; Repository Root: https://mosh-scheme.googlecode.com/svn
59;; Repository UUID: 3dc39933-274d-0410-bf6f-2fa8959f7829
60;; Revision: 746
61;; Node Kind: directory
62;; Schedule: normal
63;; Last Changed Author: higepon
64;; Last Changed Rev: 746
65;; Last Changed Date: 2008-11-28 17:10:32 +0900 (Fri, 28 Nov 2008)
66
67;; ./bench/clos.scm         :  0.558
68;; ./bench/empty.scm        :  0.065
69;; ./bench/load-library.scm :  0.105
70
71;; Darwin dorami.local 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep  3 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386
72;; Path: .
73;; URL: https://mosh-scheme.googlecode.com/svn/trunk
74;; Repository Root: https://mosh-scheme.googlecode.com/svn
75;; Repository UUID: 3dc39933-274d-0410-bf6f-2fa8959f7829
76;; Revision: 741
77;; Node Kind: directory
78;; Schedule: normal
79;; Last Changed Author: higepon
80;; Last Changed Rev: 741
81;; Last Changed Date: 2008-11-27 23:49:22 +0900 (Thu, 27 Nov 2008)
82
83;; ./bench/clos.scm         :  0.668
84;; ./bench/empty.scm        :  0.071
85;; ./bench/load-library.scm :  0.117
86
87;; Peephole optimization
88
89;; Darwin dorami.local 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep  3 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386
90;; Path: .
91;; URL: https://mosh-scheme.googlecode.com/svn/trunk
92;; Repository Root: https://mosh-scheme.googlecode.com/svn
93;; Repository UUID: 3dc39933-274d-0410-bf6f-2fa8959f7829
94;; Revision: 742
95;; Node Kind: directory
96;; Schedule: normal
97;; Last Changed Author: higepon
98;; Last Changed Rev: 742
99;; Last Changed Date: 2008-11-28 15:33:31 +0900 (Fri, 28 Nov 2008)
100
101;; ./bench/clos.scm         :  0.669
102;; ./bench/empty.scm        :  0.071
103;; ./bench/load-library.scm :  0.117
104
105;; after pass2/assign-local and fixed pass3/$call jump optimization
106;; Darwin dorami.local 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep  3 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386
107;; Path: .
108;; URL: https://mosh-scheme.googlecode.com/svn/trunk
109;; Repository Root: https://mosh-scheme.googlecode.com/svn
110;; Repository UUID: 3dc39933-274d-0410-bf6f-2fa8959f7829
111;; Revision: 780
112;; Node Kind: directory
113;; Schedule: normal
114;; Last Changed Author: higepon
115;; Last Changed Rev: 780
116;; Last Changed Date: 2008-12-04 00:00:14 +0900 (Thu, 04 Dec 2008)
117
118;; ./bench/clos.scm         :  0.618
119;; ./bench/empty.scm        :  0.066
120;; ./bench/load-library.scm :  0.115
121;; dorami%
122