关于

此页面包含针对新 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”)。以下是操作的简要说明列表

机器配置

机器
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 基准测试产生的数据生成图表,该基准测试在函数 ets_SUITE:throughput_benchmark/0 中定义(参见 “$ERL_TOP/lib/stdlib/test/ets_SUITE.erl”)。

请注意,您可以将来自多个基准测试运行的结果粘贴到下面的字段中。来自相同场景但不同基准测试运行的结果将自动重新标记并绘制在同一图表中。这使得比较不同 ETS 版本变得容易。

另外请注意,可以通过单击相应的标签来隐藏线。

将生成的数据粘贴到下面的字段中,然后按“渲染”按钮

包含吞吐量图
包含比最差吞吐量高的百分比图
包含比最佳吞吐量低的百分比图
条形图
点之间具有相同的 X 间距
显示 [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}]