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();

}

}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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