1 ! Copyright (C) 2008 Slava Pestov.
\r
2 ! See http://factorcode.org/license.txt for BSD license.
\r
3 USING: accessors assocs words sequences arrays compiler
\r
4 tools.time io.styles io prettyprint vocabs kernel sorting
\r
5 generator optimizer math math.order math.statistics combinators
\r
9 : table. ( alist -- )
\r
11 standard-table-style
\r
13 [ [ [ pprint-cell ] each ] with-row ] each
\r
16 : results ( results quot title -- )
\r
19 [ [ compare ] curry sort table. ]
\r
22 [ "Mean: " write mean >float . ]
\r
23 [ "Median: " write median >float . ]
\r
24 [ "Standard deviation: " write std >float . ]
\r
28 : optimization-passes ( word -- n )
\r
29 word-dataflow nip 1 count-optimization-passes nip ;
\r
31 : optimizer-measurements ( -- alist )
\r
32 all-words [ compiled>> ] filter
\r
33 [ dup [ optimization-passes ] benchmark 2array ] { } map>assoc ;
\r
35 : optimizer-measurements. ( alist -- )
\r
37 [ [ first ] "Optimizer passes:" results ]
\r
38 [ [ second ] "Compile times:" results ]
\r
41 : optimizer-report ( -- )
\r
42 optimizer-measurements optimizer-measurements. ;
\r
44 MAIN: optimizer-report
\r