Skip to content
This repository was archived by the owner on Apr 11, 2019. It is now read-only.

Commit eb67651

Browse files
author
José Valim
committed
Add noop benchmarking for overhead
1 parent 0dfda37 commit eb67651

File tree

3 files changed

+27
-13
lines changed

3 files changed

+27
-13
lines changed

bench/erlang.exs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,6 @@
33

44
Code.require_file "shared.exs", __DIR__
55

6-
defmodule ErlangRegistry do
7-
def whereis_name(name) do
8-
:erlang.whereis(name)
9-
end
10-
11-
def register_name(name, pid) when pid == self() do
12-
:erlang.register(name, pid)
13-
:yes
14-
end
15-
end
16-
176
tasks = String.to_integer System.get_env("TASKS") || "1"
187
IO.puts "erlang: registering #{tasks} x 10000 entries"
198

@@ -28,4 +17,4 @@ names =
2817
|> Enum.each(&Task.await(&1, :infinity))
2918
end) |> IO.inspect
3019

31-
Shared.check(names)
20+
Shared.check(names)

bench/noop.exs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# MIX_ENV=bench mix run bench/noop.exs
2+
# TASKS=8 MIX_ENV=bench mix run bench/noop.exs
3+
4+
Code.require_file "shared.exs", __DIR__
5+
6+
defmodule NoopRegistry do
7+
def whereis_name(_name), do: :undefined
8+
def register_name(_name, pid) when pid == self(), do: :yes
9+
end
10+
11+
tasks = String.to_integer System.get_env("TASKS") || "1"
12+
IO.puts "noop: registering #{tasks} x 10000 entries"
13+
14+
names =
15+
for _ <- 1..tasks do
16+
for i <- 1..10000, do: {:via, NoopRegistry, i}
17+
end
18+
19+
:timer.tc(fn ->
20+
names
21+
|> Enum.map(&Task.async(Shared, :register, [&1]))
22+
|> Enum.each(&Task.await(&1, :infinity))
23+
end) |> IO.inspect
24+
25+
Shared.check(names)

bench/registry.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ names =
2020
|> Enum.each(&Task.await(&1, :infinity))
2121
end) |> IO.inspect
2222

23-
Shared.check(names)
23+
Shared.check(names)

0 commit comments

Comments
 (0)