summaryrefslogtreecommitdiff
path: root/test/samples/update_counter.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/samples/update_counter.exs')
-rw-r--r--test/samples/update_counter.exs27
1 files changed, 14 insertions, 13 deletions
diff --git a/test/samples/update_counter.exs b/test/samples/update_counter.exs
index 1768735..6310c57 100644
--- a/test/samples/update_counter.exs
+++ b/test/samples/update_counter.exs
@@ -1,19 +1,20 @@
:ets.new(:limiter_bench, [:public, :named_table])
+:ets.new(:limiter_bench_concurrent, [:public, :named_table, {:read_concurrency, false}, {:write_concurrency, true}])
+atomics = :atomics.new(1, [])
-Benchee.run(
+update_counter =
%{
"ets:update_counter" => fn ->
:ets.update_counter(:limiter_bench, "bench", {2, 1}, {"bench", 0})
- end
- },
- parallel: 1
-)
-
-Benchee.run(
- %{
- "ets:update_counter" => fn ->
+ end,
+ "ets:update_counter concurrent" => fn ->
:ets.update_counter(:limiter_bench, "bench", {2, 1}, {"bench", 0})
- end
- },
- parallel: System.schedulers_online()
-)
+ end,
+ "atomics:add_get" => fn ->
+ :atomics.add_get(atomics, 1, 1)
+ end,
+ }
+
+Benchee.run(update_counter, parallel: 1)
+Benchee.run(update_counter, parallel: System.schedulers_online())
+