db4o java,db4o Java版性能测试评估

db4o java,db4o Java版性能测试评估publicclassTestdb4oIndex{publicstaticclassRecord{StringstrKey;longintKey;};publicstaticclassAssert{publicstaticvoidthat(booleancondition){if(!condition){thrownewError(“Assertio…

大家好,又见面了,我是你们的朋友全栈君。

public class Testdb4oIndex {

public static class Record {

String strKey;

long   intKey;

};

public static class Assert {

public static void that(boolean condition) {

if (!condition) {

throw new Error(“Assertion failed”);

}

}

}

static final String FILE = “testindex.yap”;

final static int nRecords = 100000;

static public void main(String[] args) {

new File(FILE).delete();

Configuration conf = Db4o.configure();

conf.objectClass(Record.class).objectField(“strKey”).indexed(true);

conf.objectClass(Record.class).objectField(“intKey”).indexed(true);

conf.weakReferences(false);

conf.discardFreeSpace(Integer.MAX_VALUE);

conf.automaticShutDown(false);

conf.lockDatabaseFile(false);

ObjectContainer db = Db4o.openFile(FILE);

long start = System.currentTimeMillis();

long key = 1999;

int i;

for (i = 0; i < nRecords; i++) {

Record rec = new Record();

key = (3141592621L*key + 2718281829L) % 1000000007L;

rec.intKey = key;

rec.strKey = Long.toString(key);

db.set(rec);

}

db.commit();

System.out.println(“Elapsed time for inserting ” + nRecords + ” records: “

+ (System.currentTimeMillis() – start) + ” milliseconds”);

start = System.currentTimeMillis();

key = 1999;

for (i = 0; i < nRecords; i++) {

key = (3141592621L*key + 2718281829L) % 1000000007L;

Query q = db.query();

q.constrain(Record.class);

q.descend(“intKey”).constrain(new Long(key));

Record rec1 = (Record)q.execute().next();

q = db.query();

q.constrain(Record.class);

q.descend(“strKey”).constrain(Long.toString(key));

Record rec2 = (Record)q.execute().next();

Assert.that(rec1 != null && rec1 == rec2);

}

System.out.println(“Elapsed time for performing ” + nRecords*2 + ” index searches: “

+ (System.currentTimeMillis() – start) + ” milliseconds”);

start = System.currentTimeMillis();

Query q = db.query();

q.constrain(Record.class);

ObjectSet objectSet = q.execute();

while(objectSet.hasNext()){

db.delete(objectSet.next());

}

db.commit();

System.out.println(“Elapsed time for deleting ” + nRecords + ” records: “

+ (System.currentTimeMillis() – start) + ” milliseconds”);

db.close();

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162596.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号