benchmark.hash-sets: do more benching (create sets in a literal).
Don't run the "intersects?" test on old hash-sets, they are sloooooow.db4
parent
1f13eefad2
commit
e6d4b9054e
|
@ -1,24 +1,30 @@
|
|||
|
||||
USING: combinators hash-sets kernel math.combinatorics sequences sets ;
|
||||
USING: combinators fry hash-sets kernel literals
|
||||
math math.combinatorics sequences sets ;
|
||||
|
||||
IN: benchmark.hash-sets
|
||||
|
||||
: make-sets ( -- seq )
|
||||
{ 10 100 1,000 10,000 100,000 1,000000 } [ iota >hash-set ] map ;
|
||||
CONSTANT: test-sets $[
|
||||
{ 10 100 1,000 10,000 50,000 100,000 }
|
||||
[ iota >hash-set ] map dup append
|
||||
]
|
||||
|
||||
: do-times ( n quot: ( set1 set2 -- set' ) -- )
|
||||
'[ 2dup @ drop ] times 2drop ; inline
|
||||
|
||||
: bench-sets ( seq -- )
|
||||
2 [
|
||||
first2 {
|
||||
[ union drop ]
|
||||
[ intersect drop ]
|
||||
[ intersects? drop ]
|
||||
[ diff drop ]
|
||||
[ set= drop ]
|
||||
[ subset? drop ]
|
||||
[ 3 [ union ] do-times ]
|
||||
[ 5 [ intersect ] do-times ]
|
||||
[ 100,000 [ intersects? ] do-times ]
|
||||
[ 3 [ diff ] do-times ]
|
||||
[ 50 [ set= ] do-times ]
|
||||
[ 25 [ subset? ] do-times ]
|
||||
} 2cleave
|
||||
] each-combination ;
|
||||
|
||||
: hash-sets-benchmark ( -- )
|
||||
make-sets bench-sets ;
|
||||
test-sets bench-sets ;
|
||||
|
||||
MAIN: hash-sets-benchmark
|
||||
|
|
Loading…
Reference in New Issue