关于

此页面包含新的 ETS 选项 {write_concurrency, auto} 和 {write_concurrency, N}(其中 N 为整数)的基准测试结果。有关新选项的更多信息,请参阅 提交 1b578e20634b2f5327c85879d009a60152583f52 以及之前的两次提交。

基准测试描述

该基准测试衡量 X 个 Erlang 进程在单个表上每秒可以执行多少个 ETS 操作。每个 X 进程都会从给定的操作集中重复选择一个操作执行。基准测试还会提供选择特定操作的可能性。在每次基准测试运行开始之前,进程操作的表会预先填充 50 万个项目。

基准测试的源代码位于函数 ets_SUITE:throughput_benchmark/0 中(请参阅 "$ERL_TOP/lib/stdlib/test/ets_SUITE.erl")。以下是操作的简要描述列表

机器配置

机器
Microsoft Azure VM 实例:Standard D64s v3 (64 个虚拟 CPU,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}]