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