]> gitweb.factorcode.org Git - factor.git/blob - extra/benchmark/dispatch5/dispatch5.factor
factor: trim using lists
[factor.git] / extra / benchmark / dispatch5 / dispatch5.factor
1 USING: classes.tuple kernel sequences vocabs math ;
2 IN: benchmark.dispatch5
3
4 MIXIN: g
5
6 TUPLE: x1 ;
7 INSTANCE: x1 g
8 TUPLE: x2 ;
9 INSTANCE: x2 g
10 TUPLE: x3 ;
11 INSTANCE: x3 g
12 TUPLE: x4 ;
13 INSTANCE: x4 g
14 TUPLE: x5 ;
15 INSTANCE: x5 g
16 TUPLE: x6 ;
17 INSTANCE: x6 g
18 TUPLE: x7 ;
19 INSTANCE: x7 g
20 TUPLE: x8 ;
21 INSTANCE: x8 g
22 TUPLE: x9 ;
23 INSTANCE: x9 g
24 TUPLE: x10 ;
25 INSTANCE: x10 g
26 TUPLE: x11 ;
27 INSTANCE: x11 g
28 TUPLE: x12 ;
29 INSTANCE: x12 g
30 TUPLE: x13 ;
31 INSTANCE: x13 g
32 TUPLE: x14 ;
33 INSTANCE: x14 g
34 TUPLE: x15 ;
35 INSTANCE: x15 g
36 TUPLE: x16 ;
37 INSTANCE: x16 g
38 TUPLE: x17 ;
39 INSTANCE: x17 g
40 TUPLE: x18 ;
41 INSTANCE: x18 g
42 TUPLE: x19 ;
43 INSTANCE: x19 g
44 TUPLE: x20 ;
45 INSTANCE: x20 g
46 TUPLE: x21 ;
47 INSTANCE: x21 g
48 TUPLE: x22 ;
49 INSTANCE: x22 g
50 TUPLE: x23 ;
51 INSTANCE: x23 g
52 TUPLE: x24 ;
53 INSTANCE: x24 g
54 TUPLE: x25 ;
55 INSTANCE: x25 g
56 TUPLE: x26 ;
57 INSTANCE: x26 g
58 TUPLE: x27 ;
59 INSTANCE: x27 g
60 TUPLE: x28 ;
61 INSTANCE: x28 g
62 TUPLE: x29 ;
63 INSTANCE: x29 g
64 TUPLE: x30 ;
65 INSTANCE: x30 g
66
67 : my-classes ( -- seq )
68     "benchmark.dispatch5" vocab-words [ tuple-class? ] filter ;
69
70 : a-bunch-of-objects ( -- seq )
71     my-classes [ new ] map ;
72
73 : dispatch5-benchmark ( -- )
74     1000000 a-bunch-of-objects
75     [ f [ g? or ] reduce drop ] curry times ;
76
77 MAIN: dispatch5-benchmark