Versions Compared

Key

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

...

查询:直接查询跳表的引用


内存占用

单序列一百万个点

Array: 4MB4 MB

SkipList:52 MB (Integer:16 MB, SkipListNode:36 MB)SkipList:52MB (Integer:16MB, SkipListNode:36MB)

十万序列每序列十个点

SkipList:59.6 MB (SkipList: 58MB58 MB, ref: 1.6MB6 MB)

Array: 5.6MB 6 MB (data: 4MB4 MB, ref: 1.6MB6 MB)

单线程写入+查询

单序列一千万个点

写入

Array:360msArray:360 ms

SkipList:8921msSkipList:8921 ms

查询

Array:449msArray:449 ms

SkipList:76msSkipList:76 ms

一千序列每序列一万个点

写入

Array:428msArray:428 ms

SkipList:9138msSkipList:9138 ms

查询

Array:393msArray:393 ms

SkipList:92msSkipList:92 ms

十万序列每序列一百个点

写入

Array:429msArray:429 ms

SkipList:10129msSkipList:10129 ms

查询

Array:172msArray:172 ms

SkipList:119msSkipList:119 ms

并发写入+查询

测试方法

单线程写入,同时匹配n个线程查询,测试在有查询的负载下,写入线程最终完成写入的总时间

n: 查询线程数

单序列一千万个点

n = 1

Array:528msArray:528 ms

SkipList: 12413ms12413 ms

n = 3

Array:702msArray:702 ms

SkipList: 14202ms14202 ms

n = 5

Array:1131msArray:1131 ms

SkipList: 16304ms16304 ms

十万序列每序列一百个点

n = 1

Array:1056msArray:1056 ms

SkipList:10243msSkipList:10243 ms

n = 3

Array:1539msArray:1539 ms

SkipList:11620msSkipList:11620 ms

n = 5

Array:2064msArray:2064 ms

SkipList:13714msSkipList:13714 ms


结论

(1)内存占用:skiplist 的内存占用为 array 的10倍左右

...