环境准备

操作系统:Linux fedora 6.19.8-200.fc43.x86_64
cmake 版本:3.31.11
GCC版本:GCC

下载代码

git clone --recurse-submodules https://github.com/google/leveldb.git
使用代码版本:1.23

编译leveldb

使用下面命令编译leveldb:

mkdir -p build && cd build

cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .

在build目录下会编译产出如下编译产物:

*_test: 测试用例
libleveldb.a:静态链接库
db_bench:性能基准测试工具,可以用它来评估当前机器的读写 IOPS

可以执行db_bench查看本机性能:

LevelDB:    version 1.23
Date:       Sun Jul  5 11:37:25 2026
CPU:        4 * Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
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      :       2.254 micros/op;   49.1 MB/s     
fillsync     :       6.283 micros/op;   17.6 MB/s (1000 ops)
fillrandom   :       2.736 micros/op;   40.4 MB/s     
overwrite    :       2.836 micros/op;   39.0 MB/s     
readrandom   :       2.848 micros/op; (864322 of 1000000 found)
readrandom   :       2.764 micros/op; (864083 of 1000000 found)
readseq      :       0.143 micros/op;  774.1 MB/s    
readreverse  :       0.288 micros/op;  384.5 MB/s    
compact      :  320773.000 micros/op;
readrandom   :       1.556 micros/op; (864105 of 1000000 found)
readseq      :       0.122 micros/op;  907.4 MB/s    
readreverse  :       0.255 micros/op;  433.3 MB/s    
fill100K     :     233.414 micros/op;  408.6 MB/s (1000 ops)
crc32c       :       1.359 micros/op; 2875.3 MB/s (4K per op)
snappycomp   :    2600.000 micros/op; (snappy failure)
snappyuncomp :    2494.000 micros/op; (snappy failure)
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐