gb_trees是erlang标准库函数,maps是bif函数,从这层面来看,maps似乎性能会更好。
我们对比不通容量的内存占用,耗时,如下:
10万 | 100万 | |
---|---|---|
maps | 11170568 |
139794016 |
trees | 16365296 |
139794016 |
10万 | 100万 | |
---|---|---|
maps | 91.665 |
1269.390 |
trees | 228.481 |
3482.883 |
10万 | 100万 | |
---|---|---|
maps | 9.243 |
50.163 |
trees | 12.815 |
90.865 |
10万 | 100万 | |
---|---|---|
maps | 0.001 |
0.002 |
trees | 0.005 |
0.004 |
由上图基本可以得出结论,maps性能更优越。
测试相关代码如下:
-module(test).
-export([test/1, test_create/2, test_get/2, test_foreach/1]).
-export([time_msg/0])