Created
March 8, 2022 16:00
-
-
Save PragTob/d723d6c8eab930d28e8937d92a1eade3 to your computer and use it in GitHub Desktop.
Benchee profile after showcase
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
list = Enum.to_list(1..10_000) | |
map_fun = fn i -> [i, i * i] end | |
Benchee.run( | |
%{ | |
"flat_map" => fn -> Enum.flat_map(list, map_fun) end, | |
"map.flatten" => fn -> list |> Enum.map(map_fun) |> List.flatten() end | |
}, | |
profile_after: true | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Operating System: Linux | |
CPU Information: AMD Ryzen 9 5900X 12-Core Processor | |
Number of Available Cores: 24 | |
Available memory: 31.27 GB | |
Elixir 1.13.3 | |
Erlang 24.2.1 | |
Benchmark suite executing with the following configuration: | |
warmup: 2 s | |
time: 5 s | |
memory time: 0 ns | |
reduction time: 0 ns | |
parallel: 1 | |
inputs: none specified | |
Estimated total run time: 14 s | |
Benchmarking flat_map ... | |
Benchmarking map.flatten ... | |
Name ips average deviation median 99th % | |
flat_map 3.51 K 284.55 μs ±13.79% 277.29 μs 557.14 μs | |
map.flatten 2.09 K 477.46 μs ±30.97% 410.71 μs 871.02 μs | |
Comparison: | |
flat_map 3.51 K | |
map.flatten 2.09 K - 1.68x slower +192.91 μs | |
Profiling flat_map with eprof... | |
Profile results of #PID<0.237.0> | |
# CALLS % TIME µS/CALL | |
Total 30004 100.0 6864 0.23 | |
Enum.flat_map/2 1 0.00 0 0.00 | |
anonymous fn/2 in :elixir_compiler_1.__FILE__/1 1 0.00 0 0.00 | |
:erlang.apply/2 1 0.03 2 2.00 | |
:erlang.++/2 10000 17.35 1191 0.12 | |
anonymous fn/1 in :elixir_compiler_1.__FILE__/1 10000 30.29 2079 0.21 | |
Enum.flat_map_list/2 10001 52.33 3592 0.36 | |
Profile done over 6 matching functions | |
Profiling map.flatten with eprof... | |
Profile results of #PID<0.239.0> | |
# CALLS % TIME µS/CALL | |
Total 60007 100.0 9204 0.15 | |
Enum.map/2 1 0.00 0 0.00 | |
:lists.flatten/1 1 0.00 0 0.00 | |
anonymous fn/2 in :elixir_compiler_1.__FILE__/1 1 0.01 1 1.00 | |
List.flatten/1 1 0.01 1 1.00 | |
:erlang.apply/2 1 0.02 2 2.00 | |
anonymous fn/1 in :elixir_compiler_1.__FILE__/1 10000 16.17 1488 0.15 | |
Enum."-map/2-lists^map/1-0-"/2 10001 26.81 2468 0.25 | |
:lists.do_flatten/2 40001 56.98 5244 0.13 | |
Profile done over 8 matching functions |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment