Benchmark测试
·测试环境
本次测试使用的软硬件环境如下:
硬件配置:Intel(R) Core(TM) i7 860 @ 2.80GHz,4核8线程, 内存8GB。
: Redhat Enterprise Linux 6.0 X64。
·测试假定
本次测试为充分展示内存数据库的性能,使用eXtremeDB的纯内存方式,并且使用eXtremeDB最快的接口――本地API接口以本地嵌入直连方式完成测试。
·数据结构
class Record{ uint4 id; uint4 i1; uint4 i2; double d1; double d2; char < 30 > s1; char < 30 > s2; list; unique hash < id > hkey[ 10000000 ]; tree < id > tkey;};插入测试
·单线程
首先进行单线程的插入测试,向数据库中插入10000000条记录,性能如下:
线程ID | 记录数 | 耗时(毫秒) |
1 | 10000000 | 27286 |
每条记录所花费的时间(微秒) | 2.7286 | |
每秒吞吐率(object/s) | 366488.3090 |
单线程插入10000000条记录的耗时为27秒,每条记录的花费时间为2.7微秒,每秒处理的记录数为36万。
·4线程
之后我们增加线程数为4.
四个线程同时插入10000000条记录,性能如下:
线程ID | 记录数 | 耗时(毫秒) |
1 | 2500000 | 12324 |
2 | 2500000 | 12929 |
3 | 2500000 | 13082 |
4 | 2500000 | 13158 |
插入10000000条记录所花费的总时间(秒) | 12.87325 | |
每条记录所花费的时间(微秒) | 1.287325 | |
每秒吞吐率(object/s) | 776804.6142 |
四个线程插入10000000条记录的总耗时为12.8秒,平均每条记录耗时1.28微秒,每秒处理77万条数据。
·8线程
最后是8个线程的插入测试。
插入测试是通过8个线程,向数据库中添加10000000条记录,每个线程的性能和总体性能如下:
线程ID | 记录数 | 耗时(毫秒) |
1 | 1250000 | 13641 |
2 | 1250000 | 14134 |
3 | 1250000 | 14173 |
4 | 1250000 | 14189 |
5 | 1250000 | 14214 |
6 | 1250000 | 14398 |
7 | 1250000 | 14407 |
8 | 1250000 | 14423 |
插入10000000条记录所花费的总时间(秒) | 14.19738 | |
每条记录所花费的时间(微秒) | 1.419738 | |
每秒吞吐率(object/s) | 704355.5587 |
可以看到8个并发写入10000000条记录所花费的时间大概为14秒,平均每秒可以添加70万条记录。
·总结
插入操作的总体吞吐率:
可以看到,插入操作的性能,4个线程并发操作时,吞吐率最大。
测试方法: