此页面包含针对新 ETS 选项 {write_concurrency, auto} 和 {write_concurrency, N}(其中 N 是一个整数)的基准测试结果。有关新选项的更多信息,请参阅 提交 1b578e20634b2f5327c85879d009a60152583f52 以及之前的两个提交。
基准测试衡量 X 个 Erlang 进程在一个单一表上每秒可以执行多少个 ETS 操作。每个 X 进程会从给定的操作集中反复选择要执行的操作。该操作被选择的可能性也会提供给基准测试。在每个基准测试运行开始之前,进程操作的表会预先填充 500K 个条目。
基准测试的源代码位于函数 ets_SUITE:throughput_benchmark/0
中(参见 “$ERL_TOP/lib/stdlib/test/ets_SUITE.erl
”)。以下是操作的简要说明列表
ets:insert/2
调用ets:remove/2
调用ets:lookup/2
调用
机器
Microsoft Azure VM 实例:标准 D64s v3(64 个 vcpu,256 GB 内存)
操作系统
Description: Ubuntu 18.04.2 LTS Linux version: 5.4.0-1051-azure
基准测试使用参数 "+sbt tnnps" 启动。
erl +sbt tnnps -eval "parallel_messages_SUITE:throughput_benchmark(),erlang:halt()"
使用的基准测试配置可以在 此处 找到。
此页面根据 ETS 基准测试产生的数据生成图表,该基准测试在函数 ets_SUITE:throughput_benchmark/0
中定义(参见 “$ERL_TOP/lib/stdlib/test/ets_SUITE.erl
”)。
请注意,您可以将来自多个基准测试运行的结果粘贴到下面的字段中。来自相同场景但不同基准测试运行的结果将自动重新标记并绘制在同一图表中。这使得比较不同 ETS 版本变得容易。
另外请注意,可以通过单击相应的标签来隐藏线。
将生成的数据粘贴到下面的字段中,然后按“渲染”按钮[ordered_set,public]
[ordered_set,public,{write_concurrency,true}]
[ordered_set,public,{read_concurrency,true}]
[ordered_set,public,{write_concurrency,true},{read_concurrency,true}]
[set,public]
[set,public,{write_concurrency,true}]
[set,public,{read_concurrency,true}]
[set,public,{write_concurrency,true},{read_concurrency,true}]