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
|
IN: benchmark.hash-sets
|
||||||
|
|
||||||
: make-sets ( -- seq )
|
CONSTANT: test-sets $[
|
||||||
{ 10 100 1,000 10,000 100,000 1,000000 } [ iota >hash-set ] map ;
|
{ 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 -- )
|
: bench-sets ( seq -- )
|
||||||
2 [
|
2 [
|
||||||
first2 {
|
first2 {
|
||||||
[ union drop ]
|
[ 3 [ union ] do-times ]
|
||||||
[ intersect drop ]
|
[ 5 [ intersect ] do-times ]
|
||||||
[ intersects? drop ]
|
[ 100,000 [ intersects? ] do-times ]
|
||||||
[ diff drop ]
|
[ 3 [ diff ] do-times ]
|
||||||
[ set= drop ]
|
[ 50 [ set= ] do-times ]
|
||||||
[ subset? drop ]
|
[ 25 [ subset? ] do-times ]
|
||||||
} 2cleave
|
} 2cleave
|
||||||
] each-combination ;
|
] each-combination ;
|
||||||
|
|
||||||
: hash-sets-benchmark ( -- )
|
: hash-sets-benchmark ( -- )
|
||||||
make-sets bench-sets ;
|
test-sets bench-sets ;
|
||||||
|
|
||||||
MAIN: hash-sets-benchmark
|
MAIN: hash-sets-benchmark
|
||||||
|
|
Loading…
Reference in New Issue