KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4o > test > performance > MeasureInsertPerformanceScalability


1 /* Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com
2
3 This file is part of the db4o open source object database.
4
5 db4o is free software; you can redistribute it and/or modify it under
6 the terms of version 2 of the GNU General Public License as published
7 by the Free Software Foundation and as clarified by db4objects' GPL
8 interpretation policy, available at
9 http://www.db4o.com/about/company/legalpolicies/gplinterpretation/
10 Alternatively you can write to db4objects, Inc., 1900 S Norfolk Street,
11 Suite 350, San Mateo, CA 94403, USA.
12
13 db4o is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 for more details.
17
18 You should have received a copy of the GNU General Public License along
19 with this program; if not, write to the Free Software Foundation, Inc.,
20 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */

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 JavaDoc 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 JavaDoc[] 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