1 21 package com.db4o.test.tuning; 22 23 import com.db4o.*; 24 import com.db4o.query.*; 25 import com.db4o.test.*; 26 27 28 38 39 public class TuningIdentityQuery { 40 41 static final int COUNT = 10000; 42 43 TIMember member; 44 45 public TuningIdentityQuery(){ 46 } 47 48 public TuningIdentityQuery(TIMember member){ 49 this.member = member; 50 } 51 52 public void configure() { 53 Db4o.configure().objectClass(this).objectField("member").indexed(true); 54 } 55 56 public void store(){ 57 for (int i = 0; i < COUNT; i++) { 58 Test.store(new TuningIdentityQuery(new TIMember("" + i))); 59 } 60 } 61 62 public void test(){ 63 Query q = Test.query(); 64 q.constrain(TIMember.class); 65 ObjectSet objectSet = q.execute(); 66 TIMember member = (TIMember) objectSet.next(); 67 q = Test.query(); 68 q.constrain(TuningIdentityQuery.class); 69 q.descend("member").constrain(member).identity(); 70 71 long start = System.currentTimeMillis(); 72 objectSet = q.execute(); 73 74 long stop = System.currentTimeMillis(); 75 76 Test.ensure(objectSet.size() == 1); 77 TuningIdentityQuery ti = (TuningIdentityQuery)objectSet.next(); 78 Test.ensure(ti.member == member); 79 80 long duration = stop - start; 81 System.out.println("Querying " + COUNT + " objects for member identity: " + duration + "ms"); 82 } 83 84 public static class TIMember{ 85 86 String name; 87 88 public TIMember(){ 89 90 } 91 92 public TIMember(String name){ 93 this.name = name; 94 } 95 96 } 97 98 99 } 100 | Popular Tags |