此頁面包含新的 ETS 選項 {write_concurrency, auto} 和 {write_concurrency, N}(其中 N 為整數)的效能基準測試結果。請參閱 commit 1b578e20634b2f5327c85879d009a60152583f52 以及之前的兩個 commit,以了解有關新選項的更多資訊。
此基準測試測量 X 個 Erlang 程序在單個表格上每秒可以執行的 ETS 操作次數。每個 X 程序都會從給定的一組操作中重複選擇要執行的操作。基準測試也會給出選擇特定操作的可能性。程序操作的表格在每次基準測試執行開始前都會預先填入 50 萬個項目。
基準測試的原始碼位於 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 執行個體:Standard 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}]