@@ -159,32 +159,21 @@ class DatomicSet extends APersistentCollection<BTSet> {
159159 DatomicSet create (BTSet impl ) { return new DatomicSet (impl ); }
160160}
161161
162-
163162class DatascriptSet extends APersistentCollection <SortedSet > {
164163 DatascriptSet (SortedSet impl ) { _impl = impl ; }
165164 DatascriptSet (int ml ) {
166165 SortedSet .setMaxLen (ml );
167166 _impl = new SortedSet ();
168167 }
169- DatascriptSet create (SortedSet impl ) { return new DatascriptSet (impl );}
168+ DatascriptSet create (SortedSet impl ) { return new DatascriptSet (impl ); }
170169}
171170
172- class OldDatascriptSet extends APersistentCollection <Object > {
173- static IFn ctor ;
174- static {
175- Symbol ns = (Symbol ) Clojure .var ("clojure.core" , "symbol" ).invoke ("datascript.btset" );
176- Clojure .var ("clojure.core" , "require" ).invoke (ns );
177- // ctor = (IFn) Clojure.var("datascript.btset", "btset-by");
178- ctor = (IFn ) Clojure .var ("datascript.btset" , "btset" );
179- }
180-
181- OldDatascriptSet (Object impl ) { _impl = impl ; }
182- // OldDatascriptSet(int ml) { _impl = (Object) ctor.invoke(RT.DEFAULT_COMPARATOR); }
183- OldDatascriptSet (int ml ) { _impl = (Object ) ctor .invoke (); }
184- OldDatascriptSet create (Object impl ) { return new OldDatascriptSet (impl ); }
171+ class ClojureSet extends APersistentCollection <PersistentTreeSet > {
172+ ClojureSet (PersistentTreeSet impl ) { _impl = impl ; }
173+ ClojureSet (int ml ) { _impl = PersistentTreeSet .create (RT .DEFAULT_COMPARATOR , null ); }
174+ ClojureSet create (PersistentTreeSet impl ) { return new ClojureSet (impl ); }
185175}
186176
187-
188177public class Bench {
189178 // static Integer[] maxLens = new Integer[]{8,16,32,64,128,256,512,1024};
190179 // static Integer[] maxLens = new Integer[]{32, 64, 128};
@@ -236,66 +225,34 @@ public static void runBench(Class<? extends ABench> benchClass, Collection sourc
236225
237226 public static void bench () throws Exception {
238227 new DatomicSet (0 ); // println warnings before any other output
239- new OldDatascriptSet (0 );
240228
241229 System .out .println ("Lengths " + String .join (" " , Arrays .stream (maxLens ).map ((ml )-> ml .toString () + " max" ).collect (Collectors .toList ())));
242230
243231 ArrayList <Integer > source = randomList (100000 );
244232 ArrayList <Integer > bigSource = randomList (1000000 );
245233
246234 System .out .println ("\n === 100K ADDs ===" );
235+ runBench (AddBench .class , source , ClojureSet .class , false );
247236 runBench (AddBench .class , source , DatomicSet .class );
248- // runBench(AddBench.class, source, OldDatascriptSet.class);
249- // runBench(AddBench.class, source, PersistentBTSet.class, false);
250- // runBench(AddBench.class, source, TransientBTSet.class, true);
251- // runBench(AddBench.class, source, TwoNodesSet.class, true);
252- // runBench(AddBench.class, source, ExtraLeafSet.class, true);
253- // runBench(AddBench.class, source, EarlyExitSet.class, true);
254- // runBench(AddBench.class, source, SmallTransientSet.class, true);
255- // runBench(AddBench.class, source, LinearSearchSet.class, true);
256- // runBench(AddBench.class, source, FlatIterSet.class, true);
257- // runBench(AddBench.class, source, ReverseFlatIterSet.class, true);
258- // runBench(AddBench.class, source, AtomicBooleanSet.class, false);
259- // runBench(AddBench.class, source, AtomicBooleanSet.class, true);
260- // runBench(AddBench.class, source, CleanupSet.class, false);
261- // runBench(AddBench.class, source, CleanupSet.class, true);
262237 runBench (AddBench .class , source , DatascriptSet .class , false );
263238 runBench (AddBench .class , source , DatascriptSet .class , true );
264239
265240 System .out .println ("\n === 100K CONTAINS ===" );
241+ runBench (ContainsBench .class , source , ClojureSet .class );
266242 runBench (ContainsBench .class , source , DatomicSet .class );
267- // runBench(ContainsBench.class, source, OldDatascriptSet.class);
268- // runBench(ContainsBench.class, source, SmallTransientSet.class );
269- // runBench(ContainsBench.class, source, LinearSearchSet.class );
270- // runBench(ContainsBench.class, source, FlatIterSet.class );
271- // runBench(ContainsBench.class, source, ReverseFlatIterSet.class);
272- // runBench(ContainsBench.class, source, AtomicBooleanSet.class);
273- // runBench(ContainsBench.class, source, CleanupSet.class);
274243 runBench (ContainsBench .class , source , DatascriptSet .class );
275244
276245 System .out .println ("\n === ITERATE♻ over 1M ===" );
277- // runBench(IterateBench.class, bigSource, OldDatascriptSet.class);
278- // runBench(IterateBench.class, bigSource, LinearSearchSet.class );
279- // runBench(IterateBench.class, bigSource, FlatIterSet.class );
280- // runBench(IterateBench.class, bigSource, ReverseFlatIterSet.class);
281- // runBench(IterateBench.class, bigSource, AtomicBooleanSet.class );
282- // runBench(IterateBench.class, bigSource, CleanupSet.class );
283- // runBench(IterateBench.class, bigSource, SliceSet.class );
246+ runBench (IterateBench .class , bigSource , ClojureSet .class );
284247 runBench (IterateBench .class , bigSource , DatascriptSet .class );
285248
286249 System .out .println ("\n === SEQ ITER over 1M ===" );
250+ runBench (SeqIterateBench .class , bigSource , ClojureSet .class );
287251 runBench (SeqIterateBench .class , bigSource , DatomicSet .class );
288- // runBench(SeqIterateBench.class, bigSource, OldDatascriptSet.class);
289252 runBench (SeqIterateBench .class , bigSource , DatascriptSet .class );
290253
291254 System .out .println ("\n === 100K REMOVEs ===" );
292- // runBench(RemoveBench.class, source, OldDatascriptSet.class);
293- // runBench(RemoveBench.class, source, DisjoinSet.class, false);
294- // runBench(RemoveBench.class, source, DisjoinSet.class, true);
295- // runBench(RemoveBench.class, source, EarlyExitDisjSet.class, false);
296- // runBench(RemoveBench.class, source, EarlyExitDisjSet.class, true);
297- // runBench(RemoveBench.class, source, CleanupSet.class, false);
298- // runBench(RemoveBench.class, source, CleanupSet.class, true);
255+ runBench (RemoveBench .class , source , ClojureSet .class , false );
299256 runBench (RemoveBench .class , source , DatascriptSet .class , false );
300257 runBench (RemoveBench .class , source , DatascriptSet .class , true );
301258 }
@@ -374,6 +331,6 @@ public static void test() throws Exception {
374331
375332 public static void main (String args []) throws Exception {
376333 bench ();
377- test ();
334+ // test();
378335 }
379336}
0 commit comments