Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

负载 / 查询线程数n = 1 (points / ms)n = 3 (points / ms)n = 5 (points / ms)
数据结构ArraySkipListArraySkipListArraySkipList
单序列一千万个点18.93 K0.81 K14.25 K0.70 K8.84 K0.61 K
一千序列每序列一万个点16.58 K0.36 K9.91 K0.25 K8.19 K0.19 K
十万序列每序列一百个点9.47 K0.97 K6.50 K0.86 K4.85 K0.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)
数据结构ArraySkipListArraySkipListArraySkipList
单序列一千万个点28.40 K40.76 K40.01 K114.63 K42.44 K162.16 K
一千序列每序列一万个点27.31 K42.31 K66.73 K96.48 K89.31 K112.91 K
十万序列每序列一百个点32.20 K8.40 K60.43 K28.92 K82.36 K35.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的查询性能