source: project/release/5/defstruct/tags/2.0/benchmarks/run.scm @ 35624

Last change on this file since 35624 was 35624, checked in by sjamaan, 4 months ago

Fix defstruct benchmarks

File size: 1.5 KB
Line 
1(import defstruct (chicken fixnum))
2
3(defstruct many-slots
4  a b c d e f g h i j k l m n o p q r s t u v w x y z)
5
6(defstruct many-initialized-slots
7  (a 1) (b 2) (c 3) (d 4) (e 5) (f 6) (g 7) (h 8) (i 9) (j 10)
8  (k 11) (l 12) (m 13) (n 14) (o 15) (p 16) (q 17) (r 18) (s 19) (t 20)
9  (u 21) (v 22) (w 23) (x 24) (y 25) (z 26))
10
11(print "Making a lot of empty objects without default values")
12(time (let lp ((res #f)
13               (i 0))
14        (when (fx< i 100000)
15          (lp (make-many-slots) (fx+ i 1)))))
16(newline)
17
18(print "Making a lot of populated objects without default values")
19(time (let lp ((res #f)
20               (i 0))
21        (when (fx< i 100000)
22          (lp (make-many-slots
23               a: 1 b: 2 c: 3 d: 4 e: 5 f: 6 g: 7 h: 8 i: 9 j: 10
24               k: 11 l: 12 m: 13 n: 14 o: 15 p: 16 q: 17 r: 18 s: 19
25               t: 20 u: 21 v: 22 w: 23 x: 24 y: 25 z: 26)
26              (fx+ i 1)))))
27(newline)
28
29(print "Making a lot of empty objects with default values")
30(time (let lp ((res #f)
31               (i 0))
32        (when (fx< i 100000)
33          (lp (make-many-initialized-slots) (fx+ i 1)))))
34
35(print "Making a lot of populated objects with default values")
36(time (let lp ((res #f)
37               (i 0))
38        (when (fx< i 100000)
39          (lp (make-many-initialized-slots
40               a: 1 b: 2 c: 3 d: 4 e: 5 f: 6 g: 7 h: 8 i: 9 j: 10
41               k: 11 l: 12 m: 13 n: 14 o: 15 p: 16 q: 17 r: 18 s: 19
42               t: 20 u: 21 v: 22 w: 23 x: 24 y: 25 z: 26)
43              (fx+ i 1)))))
44(newline)
Note: See TracBrowser for help on using the repository browser.