1 21 package com.db4o.test.performance; 22 23 import java.io.*; 24 25 import com.db4o.*; 26 27 28 public class MeasureInsertPerformanceScalability { 29 30 public static class Item{ 31 32 int value; 33 34 public Item() { 35 36 } 37 38 public Item(int value_) { 39 value = value_; 40 } 41 42 } 43 44 private static final String FILE = "mips.yap"; 45 46 private static final int TOTAL_COUNT = 500000; 47 48 private static final int BULK_COUNT = 5000; 49 50 51 public static void main(String [] args) { 52 new MeasureInsertPerformanceScalability().run(); 53 } 54 55 private void run() { 56 prepare(); 57 ObjectContainer objectContainer = Db4o.openFile(FILE); 58 59 boolean bulk = false; 60 int count = 0; 61 while(count < TOTAL_COUNT){ 62 if(bulk){ 63 count += storeBulk(objectContainer); 64 }else{ 65 count += storeSingle(objectContainer); 66 } 67 System.out.println("Objects: " + count); 68 bulk = ! bulk; 69 } 70 objectContainer.close(); 71 } 72 73 74 private int storeSingle(ObjectContainer objectContainer) { 75 long start = System.currentTimeMillis(); 76 objectContainer.set(new Item((int)start)); 77 objectContainer.commit(); 78 long stop = System.currentTimeMillis(); 79 long duration = stop - start; 80 System.out.println("Single " + duration + "ms"); 81 return 1; 82 } 83 84 private int storeBulk(ObjectContainer objectContainer) { 85 long start = System.currentTimeMillis(); 86 for (int i = 0; i < BULK_COUNT; i++) { 87 objectContainer.set(new Item((int)start)); 88 } 89 objectContainer.commit(); 90 long stop = System.currentTimeMillis(); 91 long duration = stop - start; 92 System.out.println("Bulk " + duration + "ms"); 93 return BULK_COUNT; 94 } 95 96 private void prepare() { 97 Db4o.configure().objectClass(Item.class).objectField("value").indexed(true); 98 new File(FILE).delete(); 99 } 100 101 } 102 | Popular Tags |