...
负载 / 查询线程数 | n = 1 (points / ms) | n = 3 (points / ms) | n = 5 (points / ms) | |||
---|---|---|---|---|---|---|
数据结构 | Array | SkipList | Array | SkipList | Array | SkipList |
单序列一千万个点 | 18.93 K | 0.81 K | 14.25 K | 0.70 K | 8.84 K | 0.61 K |
一千序列每序列一万个点 | 16.58 K | 0.36 K | 9.91 K | 0.25 K | 8.19 K | 0.19 K |
十万序列每序列一百个点 | 9.47 K | 0.97 K | 6.50 K | 0.86 K | 4.85 K | 0.72 K |
...
查询吞吐
负载 / 查询线程数 | n = 1 |
---|
...
Array:528 ms
Array read: 28.40 K points / ms
SkipList: 12413 ms
SkipList read: 40.76 K points / ms
n = 3
Array:702 ms
Array read: 40.01 K points / ms
SkipList: 14202 ms
SkipList read: 114.63 K points / ms
n = 5
Array:1131 ms
Array read: 42.44 K points / ms
SkipList: 16304 ms
SkipList read: 162.16 K points / ms
一千序列每序列一万个点
n = 1
Array:603 ms
Array read: 27.31 K points / ms
SkipList:28053 ms
SkipList read: 42.31 K points / ms
n = 3
Array:1010 ms
Array read: 66.73 K points / ms
SkipList: 40481 ms
SkipList read: 96.48 K points / ms
n = 5
Array:1221 ms
Array read: 89.31 K points / ms
SkipList:52064 ms
SkipList read: 112.91 K points / ms
十万序列每序列一百个点
n = 1
Array:1056 ms
Array read: 32.20 K points / ms
SkipList:10243 ms
SkipList read: 8.40 K points / ms
n = 3
Array:1539 ms
Array read: 60.43 K points / ms
SkipList:11620 ms
SkipList read: 28.92 K points / ms
n = 5
Array:2064 ms
Array read: 82.36 K points / ms
SkipList:13714 ms
SkipList read: 35.22 K points / ms
结论:随着每序列的点数减少,skiplist的查询性能越来越低,最终会低于Array的查询性能
...
(points / ms) | n = 3 (points / ms) | n = 5 (points / ms) | ||||
---|---|---|---|---|---|---|
数据结构 | Array | SkipList | Array | SkipList | Array | SkipList |
单序列一千万个点 | 28.40 K | 40.76 K | 40.01 K | 114.63 K | 42.44 K | 162.16 K |
一千序列每序列一万个点 | 27.31 K | 42.31 K | 66.73 K | 96.48 K | 89.31 K | 112.91 K |
十万序列每序列一百个点 | 32.20 K | 8.40 K | 60.43 K | 28.92 K | 82.36 K | 35.22 K |
Array/Skiplist查询延迟比随序列中的点数变化趋势
结论
(1)内存占用:skiplist 的内存占用为 array 的10倍左右
(2)写性能:array (2)写延迟:array 的写性能大约为 skiplist 的20倍
(3)读性能:由于内存拷贝及排序,内存中的点数越多,array查询的性能越差,在1000万点时,skiplist (3)读延迟:由于内存拷贝及排序,内存中的点数越多,array查询的性能越差,在1000万点时,skiplist 的查询性能约为array的5倍,100点时,skiplist 的查询性能约为array的1.5倍
(4)读写混合负载查询吞吐:skiplist的随着每序列的点数减少,skiplist的查询性能越来越低,最终会低于Array的查询性能