summaryrefslogtreecommitdiff
path: root/test/samples
diff options
context:
space:
mode:
Diffstat (limited to 'test/samples')
-rw-r--r--test/samples/multi_limiter.exs69
-rw-r--r--test/samples/update_counter.exs33
2 files changed, 56 insertions, 46 deletions
diff --git a/test/samples/multi_limiter.exs b/test/samples/multi_limiter.exs
index f56cb6c..0936773 100644
--- a/test/samples/multi_limiter.exs
+++ b/test/samples/multi_limiter.exs
@@ -1,49 +1,54 @@
infinite = 1_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000
-parallel = case Integer.parse(System.get_env("PARALLEL", "")) do
- {int, _} -> int
- _ -> System.schedulers_online()/2
-end
-multi_count = case Integer.parse(System.get_env("MULTI", "")) do
- {int, _} -> int
- _ -> parallel
-end
+parallel =
+ case Integer.parse(System.get_env("PARALLEL", "")) do
+ {int, _} -> int
+ _ -> System.schedulers_online() / 2
+ end
+
+multi_count =
+ case Integer.parse(System.get_env("MULTI", "")) do
+ {int, _} -> int
+ _ -> parallel
+ end
-names = fn(prefix) ->
+names = fn prefix ->
for i <- 1..multi_count do
Module.concat(MultiConcurrentLimiterBenchmark, "#{prefix}#{i}")
end
end
+bench_unique =
+ for name <- names.("u") do
+ ConcurrentLimiter.new(name, infinite, 0, backend: {:ets, name, []})
+ name
+ end
-bench_unique = for name <- names.("u") do
- ConcurrentLimiter.new(name, infinite, 0, backend: {:ets, name, []})
- name
-end
-
-IO.inspect(bench_unique)
-
-bench_atomics = for name <- names.("a") do
- ConcurrentLimiter.new(name, infinite, 0, backend: :atomics)
- name
-end
+bench_atomics =
+ for name <- names.("a") do
+ ConcurrentLimiter.new(name, infinite, 0, backend: :atomics)
+ name
+ end
-bench_shared = for name <- names.("s") do
- ConcurrentLimiter.new(name, infinite, 0, backend: {:ets, ConcurrentLimiterTest, []})
- name
-end
+bench_shared =
+ for name <- names.("s") do
+ ConcurrentLimiter.new(name, infinite, 0, backend: {:ets, ConcurrentLimiterTest, []})
+ name
+ end
rw = [{:read_concurrency, true}, {:write_concurrency, true}]
-bench_unique_rw = for name <- names.("u_rw") do
- ConcurrentLimiter.new(name, infinite, 0, backend: {:ets, name, rw})
- name
-end
+bench_unique_rw =
+ for name <- names.("u_rw") do
+ ConcurrentLimiter.new(name, infinite, 0, backend: {:ets, name, rw})
+ name
+ end
-bench_shared_rw = for name <- names.("s_rw") do
- ConcurrentLimiter.new(name, infinite, 0, backend: {:ets, ConcurrentLimiterTestRW, rw})
- name
-end
+bench_shared_rw =
+ for name <- names.("s_rw") do
+ ConcurrentLimiter.new(name, infinite, 0, backend: {:ets, ConcurrentLimiterTestRW, rw})
+ name
+ end
multiple = %{
"ConcurrentLimiter.limit/2 unique ets" => fn ->
diff --git a/test/samples/update_counter.exs b/test/samples/update_counter.exs
index 6310c57..1d8e837 100644
--- a/test/samples/update_counter.exs
+++ b/test/samples/update_counter.exs
@@ -1,20 +1,25 @@
:ets.new(:limiter_bench, [:public, :named_table])
-:ets.new(:limiter_bench_concurrent, [:public, :named_table, {:read_concurrency, false}, {:write_concurrency, true}])
+
+:ets.new(:limiter_bench_concurrent, [
+ :public,
+ :named_table,
+ {:read_concurrency, false},
+ {:write_concurrency, true}
+])
+
atomics = :atomics.new(1, [])
-update_counter =
- %{
- "ets:update_counter" => fn ->
- :ets.update_counter(:limiter_bench, "bench", {2, 1}, {"bench", 0})
- end,
- "ets:update_counter concurrent" => fn ->
- :ets.update_counter(:limiter_bench, "bench", {2, 1}, {"bench", 0})
- end,
- "atomics:add_get" => fn ->
- :atomics.add_get(atomics, 1, 1)
- end,
- }
+update_counter = %{
+ "ets:update_counter" => fn ->
+ :ets.update_counter(:limiter_bench, "bench", {2, 1}, {"bench", 0})
+ end,
+ "ets:update_counter concurrent" => fn ->
+ :ets.update_counter(:limiter_bench, "bench", {2, 1}, {"bench", 0})
+ 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())
-