leveldb之简单测试
2013-09-14 18:46
375 查看
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
编译:将之前编译好的libleveldb.a拷贝到于以上代码同一目录中然后g++ -o leveldbtest main.cpp libleveldb.a -lpthread
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 <assert> #include <iostream> #include <leveldb/db.h> 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和ForestDB简单性能测试(含代码)
- Windows上面编译和简单测试一下leveldb-1.9.0
- Linux下安装Weblogic10.3.6并创建简单集群测试
- jmeter压力测试的简单实例+badboy脚本录制
- 简单测试UnitedStack云磁盘IO
- 对无线数传设备(GPRS/CDMA)的信号测试的简单说明
- 使用J2SE开发一个测试Xfire的webservice的简单程序
- java反射技术的简单测试
- java 范型编程的简单测试。
- mmap--最简单的测试程序(用户空间与内核空间数据交换&&用户态和内核态的数据交换用例)
- SQLSERVER2012 列存储索引的简单研究和测试
- (转)MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- 让跨浏览器测试 Web 应用程序变得简单
- socket编程,简单多线程服务端测试程序
- pgbench 简单的基准测试
- 一次简单的POST注入测试
- HBase的安装和简单测试
- JSONObject简单测试使用
- IBM Lotus Domino 7 中的实用 Web 服务,第 2 部分: 编写和测试简单的 Web 服务
- 【IOS】简单的测试银联和微信支付