package org.apache.jdbm.junk; import org.apache.jdbm.*; import java.io.IOException; import java.util.Random; import java.util.Set; //TODO 112444910 public class RandomInsertLongs { public static void main(String[] args) throws IOException { DB db = DBMaker.openFile("/hugo/large/test"+System.currentTimeMillis()) .disableTransactions() .enableHardCache() .make(); Set<Long> m = db.createTreeSet("test"); Random r = new Random(234); long printEvery = (long) 1e7; long readEvery = (long) 1e5; long t = System.currentTimeMillis(); for(long i = 1;;i++){ m.add(makeLong(i)); //make a few random reads if(i%readEvery == 0 && i>200000000){ for(long j = 1;j<readEvery;j++){ long key = r.nextInt((int) i); if(key>0 && !m.contains(makeLong(key))) throw new InternalError(""+key); } } //print time for last round if(i%printEvery==0){ long time = System.currentTimeMillis(); System.out.println(i + " - "+(time-t)+" ms"); t = time; } } } public static Long makeLong(long value){ return ((long)(int)(value ^ (value >>> 32))) + ((long)(int)(((value+1) ^ ((value+1) >>> 32)))<<32); } }