Skip to content

Instantly share code, notes, and snippets.

@ghatighorias
Last active February 6, 2017 16:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ghatighorias/5470bb8fb33552c3f598462521e79c37 to your computer and use it in GitHub Desktop.
Save ghatighorias/5470bb8fb33552c3f598462521e79c37 to your computer and use it in GitHub Desktop.
# To avoid making extra gist, I have put all the modules needed for bmark in this gist.
# Nevertheless, you need to break them in different .exs files
defmodule BigBmark do
use Bmark
@input Enum.to_list(1..1_000_000)
bmark :tail_recursive do
map_fun = fn(element) -> element + 1 end
MyMap.map_tco(@input, map_fun)
end
bmark :stdlib_map do
map_fun = fn(element) -> element + 1 end
Enum.map(@input, map_fun)
end
bmark :body_recursive do
map_fun = fn(element) -> element + 1 end
MyMap.map_body(@input, map_fun)
end
end
defmodule MediumBmark do
use Bmark
@input Enum.to_list(1..100_000)
bmark :tail_recursive do
map_fun = fn(element) -> element + 1 end
MyMap.map_tco(@input, map_fun)
end
bmark :stdlib_map do
map_fun = fn(element) -> element + 1 end
Enum.map(@input, map_fun)
end
bmark :body_recursive do
map_fun = fn(element) -> element + 1 end
MyMap.map_body(@input, map_fun)
end
end
defmodule SmallBmark do
use Bmark
@input Enum.to_list(1..10_000)
bmark :tail_recursive do
map_fun = fn(element) -> element + 1 end
MyMap.map_tco(@input, map_fun)
end
bmark :stdlib_map do
map_fun = fn(element) -> element + 1 end
Enum.map(@input, map_fun)
end
bmark :body_recursive do
map_fun = fn(element) -> element + 1 end
MyMap.map_body(@input, map_fun)
end
end
defmodule VerybigBmark do
use Bmark
@input Enum.to_list(1..5_000_000)
bmark :tail_recursive do
map_fun = fn(element) -> element + 1 end
MyMap.map_tco(@input, map_fun)
end
bmark :stdlib_map do
map_fun = fn(element) -> element + 1 end
Enum.map(@input, map_fun)
end
bmark :body_recursive do
map_fun = fn(element) -> element + 1 end
MyMap.map_body(@input, map_fun)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment