diff options
Diffstat (limited to 'test/samples/multi_limiter.exs')
-rw-r--r-- | test/samples/multi_limiter.exs | 69 |
1 files changed, 37 insertions, 32 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 -> |