leveldb之简单测试

1. 最新版下载地址 https://code.google.com/p/leveldb/downloads/list

2. 放到linux系统中解压并编译,其实编译leveldb很简单,解压下载包之后进入目录直接执行make即可。编译完成之后会在当前目录生成几个文件:
   libleveldb.a libleveldb.so libleveldb.so.1 libleveldb.so.1.13(我当前下载的是1.13.0版),其中libleveldb.so.1,libleveldb.so都是libleveldb.so.1.13的软连

3. 编译性能测试程序
   源码包中自带有几个性能测试程序,一个是leveldb自身的测试程序:db_bench,还有两个分别是db_bench_sqlite3、db_bench_tree_db,分别编译之make db_bench  make db_bench_sqlite3  mke db_bench_tree_db,后面两个由于依赖关系不一定能够编译通过,具体问题需要具体解决。

4. 执行db_bench等到如下数据
[root@localhost leveldb-1.13.0]# ./db_bench 
LevelDB:    version 1.13
Date:       Wed Sep  4 11:51:30 2013
CPU:        1 * Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz
CPUCache:   3072 KB
Keys:       16 bytes each
Values:     100 bytes each (50 bytes after compression)
Entries:    1000000
RawSize:    110.6 MB (estimated)
FileSize:   62.9 MB (estimated)
WARNING: Snappy compression is not enabled
------------------------------------------------
fillseq               :       3.783 micros/op;   29.2 MB/s     
fillsync              :      3225.427 micros/op;    0.0 MB/s (1000 ops)
fillrandom        :      11.218 micros/op;    9.9 MB/s     
overwrite          :      18.988 micros/op;    5.8 MB/s     
readrandom     :      12.606 micros/op; (1000000 of 1000000 found)
readrandom     :       6.795 micros/op; (1000000 of 1000000 found)
readseq             :       0.311 micros/op;  355.2 MB/s    
readreverse       :       0.636 micros/op;  173.9 MB/s    
compact            :    2563542.000 micros/op;
readrandom      :    4.043 micros/op; (1000000 of 1000000 found)
readseq              :    0.269 micros/op;  411.3 MB/s    
readreverse        :    0.566 micros/op;  195.4 MB/s    
fill100K              :     6787.659 micros/op;   14.1 MB/s (1000 ops)
crc32c                :     10.426 micros/op;  374.7 MB/s (4K per op)
snappycomp     :     8702.000 micros/op; (snappy failure)
snappyuncomp :    6969.000 micros/op; (snappy failure)
acquireload       :    1.493 micros/op; (each op is 1000 loads)
前面是一些关于机器的信息和要写入数据的信息,后面的则是性能数据,关于micros/op其值越小越好, 关于MB/s其值越大越好

5. 准备开发用的头文件
   将include下的leveldb目录拷贝到/usr/include/下:cp -r include/leveldb /usr/include/

6. 简单测试用例
// main.cpp
#include 
#include 
#include 

int main (int argc,char * argv[])
{
	leveldb::DB* db;
	leveldb::Options options;
	options.create_if_missing = true;
	std::string dbpath = "testdb";
	leveldb::Status status = leveldb::DB::Open (options, dbpath, &db);
	assert (status.ok ());
	std::string key = "test";
	std::string val = "test_value";
	s = db->Put (leveldb::WriteOptions (), key, val);
	val.clear ();
	s = db->Get (leveldb::ReadOptions (), key, &val);

	std::cout << key << ": " << val << std::endl;
}

编译:将之前编译好的libleveldb.a拷贝到于以上代码同一目录中然后g++ -o leveldbtest main.cpp libleveldb.a -lpthread




你可能感兴趣的:(leveldb)