1 21 package com.db4o.test; 22 23 import java.io.*; 24 25 import com.db4o.*; 26 import com.db4o.query.*; 27 28 31 public class MaxSize { 32 33 public String index; 34 35 private static final int SIZE = 1000000; 36 private static final int COMMIT_INTERVAL = 10000; 37 private static final int QUERIES = 1000; 38 private static final String FILE = "maxSize.yap"; 39 40 public static void main(String [] args) { 41 42 Db4o.configure().objectClass(MaxSize.class).objectField("index").indexed(true); 44 45 store(); 46 query(); 47 } 48 49 public MaxSize() { 50 51 } 52 53 public MaxSize(String index) { 54 this.index = index; 55 } 56 57 public static void store() { 58 new File(FILE).delete(); 59 ObjectContainer objectContainer = Db4o.openFile(FILE); 60 long start = System.currentTimeMillis(); 61 long elapsed; 62 for (int i = 1; i <= SIZE; i++) { 63 objectContainer.set(new MaxSize("" + i)); 64 if (((double) i / (double) COMMIT_INTERVAL) == i / COMMIT_INTERVAL) { 65 objectContainer.commit(); 66 objectContainer.ext().purge(); 67 elapsed = System.currentTimeMillis() - start; 68 System.out.println("Committed " + i + " from " + SIZE + " elapsed " + elapsed + "ms"); 69 } 70 } 71 objectContainer.close(); 72 elapsed = System.currentTimeMillis() - start; 73 System.out.println("\nTime to store " + SIZE + " objects:\n" + elapsed + "ms"); 74 } 75 76 public static void query() { 77 78 ObjectContainer objectContainer = Db4o.openFile(FILE); 79 long time = System.currentTimeMillis(); 80 for (int i = 1; i <= QUERIES; i++) { 81 Query q = objectContainer.query(); 82 q.constrain(MaxSize.class); 83 q.descend("index").constrain("" + i); 84 q.execute(); 85 } 86 time = System.currentTimeMillis() - time; 87 objectContainer.close(); 88 System.out.println("\nTime for " + QUERIES + " queries against an indexed field in " + SIZE + " objects:\n" + time + "ms"); 89 double perQuery = (double)time / (double)1000; 90 System.out.println("\nTime per query:\n" + perQuery + "ms"); 91 int perSecond = (int)((double)1000 / perQuery); 92 System.out.println("\nQueries per second:\n" + perSecond); 93 } 94 95 96 } | Popular Tags |