package com.ctriposs.sdb;
import java.io.IOException;
import com.ctriposs.sdb.DBConfig;
import com.ctriposs.sdb.SDB;
import com.ctriposs.sdb.utils.TestUtil;
public class ReadWriteTest {
private static String testDir = TestUtil.TEST_BASE_DIR + "sdb/unit/read_write_test";
private static long TOTAL = 10000000;
private static void write(SDB db) {
long sum = 0;
long count = 0;
long startTime = System.currentTimeMillis();
for(long i = 0; i < TOTAL; i++) {
byte[] keyBytes = ("" + i).getBytes();
long oneStartTime = System.nanoTime();
db.put(keyBytes, keyBytes);
if (i % 100000 == 0) {
sum += (System.nanoTime() - oneStartTime);
count++;
}
}
System.out.println("avg:" + sum / count + " ns");
System.out.println("write " + TOTAL / 1000000 + " million times:" + (System.currentTimeMillis() - startTime) + " ms");
}
private static void read(SDB db) {
long startTime = System.currentTimeMillis();
for(long i = 0; i < TOTAL; i++) {
byte[] keyBytes = ("" + i).getBytes();
db.get(keyBytes);
}
System.out.println("read " + TOTAL / 1000000 + " million times:" + (System.currentTimeMillis() - startTime) + " ms");
}
public static void main(String args[]) throws IOException {
SDB db = new SDB(testDir, DBConfig.HUGE);
write(db);
read(db);
db.close();
db.destory();
}
}