zoukankan      html  css  js  c++  java
  • Linux下RocksDB、LevelDB、ForestDB性能测试对比

    简要说明

    本次环境与http://www.cnblogs.com/oloroso/p/6306352.html中的一致。
    依然是增删查改各测试10000次,每个测试重复5次取平均值。

    1、不使用jemalloc和tbb测试

    三个数据库除了rocksdb之外,默认都不使用jemalloctbb
    设置rocksdb的编译参数为make static_lib -e DISABLE_JEMALLOC=1 -j8,以便不启用jemalloc

    三个测试代码的编译命令如下:

    g++ rocksdb_test.cpp  -o rocksdb_test  -I./include  -L. -lrocksdb -lpthread -lrt -lsnappy -lgflags -lz -lbz2 -llz4 -O2
    g++ leveldb_test.cpp  -o leveldb_test  -I../include -L. -lleveldb -O2 -Wl,-rpath=. 
    g++ forestdb_test.cpp -o forestdb_test -I../include -L. -lforestdb -O2 -Wl,-rpath=. 
    

    测试结果对比直方图如下
    no-jt

    2、使用jemalloc和tbb测试

    因为leveldb内没有设置使用jemalloc的代码,所以只在链接的时候添加。
    forestdb使用cmake生成Makefile的时候设置变量COUCHBASE_SERVER_BUILD_JEMALLOC的值为1来使用jemalloc

    三个测试代码的编译命令如下:

    g++ rocksdb_test.cpp  -o rocksdb_test  -I./include  -L. -lrocksdb -lpthread -lrt -lsnappy -lgflags -lz -lbz2 -llz4 -ljemalloc -ltbb -O2
    g++ leveldb_test.cpp  -o leveldb_test  -I../include -L. -lleveldb  -ljemalloc -ltbb -O2 -Wl,-rpath=. 
    g++ forestdb_test.cpp -o forestdb_test -I../include -L. -lforestdb  -ljemalloc -ltbb -O2 -Wl,-rpath=. 
    

    测试结果对比直方图如下
    jt

    测试数据和代码

    leveldbforestdb的代码见http://www.cnblogs.com/oloroso/p/6306352.html最后部分。
    rocksdb的测试代码和leveldb的测试代码基本一致,只是将其中的leveldb全部改为rocksdb即可(namespace和头文件路径)。

    实际测试的时候发现一个问题,rocksdb测试程序在Open数据库的时候耗时比较长,貌似花了很多时间在做一些处理,可能是和它的压缩和校验策略有关吧(RocksDB的ReadOptions默认构造时,verify_checksuntrue,而LevelDB默认为false)。

    5次测试平均值如下

  • 相关阅读:
    一个支持asp.net2.0和Sql server及Access的免费空间
    ASP.NET2.0数据指南中文版索引
    所阅读的ASP.NET 2.0文章
    SQL SERVER实用技巧
    2000/XP/2003常见问题集锦
    解讀多重啟動引導文件——BOOT.INI
    【译】Html5游戏开发示例(2)
    unity3d 鼠标事件穿透GUI的处理
    【译】Html5游戏开发示例(3)
    unity3d 截屏
  • 原文地址:https://www.cnblogs.com/oloroso/p/6323400.html
Copyright © 2011-2022 走看看