-
Notifications
You must be signed in to change notification settings - Fork 66
/
Copy pathmeasure_memory.exs
53 lines (43 loc) · 1.33 KB
/
measure_memory.exs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
map_fun = fn i -> [i, i * i] end
Benchee.run(
%{
"flat_map" => fn input -> Enum.flat_map(input, map_fun) end,
"map.flatten" => fn input -> input |> Enum.map(map_fun) |> List.flatten() end
},
inputs: %{
"Small" => Enum.to_list(1..1000),
"Bigger" => Enum.to_list(1..100_000)
},
time: 0,
warmup: 0,
memory_time: 2
)
# Operating System: Linux
# CPU Information: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
# Number of Available Cores: 8
# Available memory: 15.61 GB
# Elixir 1.8.1
# Erlang 21.3.2
# Benchmark suite executing with the following configuration:
# warmup: 0 ns
# time: 0 ns
# memory time: 2 s
# parallel: 1
# inputs: Bigger, Small
# Estimated total run time: 8 s
# Benchmarking flat_map with input Bigger...
# Benchmarking flat_map with input Small...
# Benchmarking map.flatten with input Bigger...
# Benchmarking map.flatten with input Small...
# ##### With input Bigger #####
# Memory usage statistics:
# Name Memory usage
# flat_map 6.10 MB
# map.flatten 7.63 MB - 1.25x memory usage +1.53 MB
# **All measurements for memory usage were the same**
# ##### With input Small #####
# Memory usage statistics:
# Name Memory usage
# flat_map 62.47 KB
# map.flatten 78.13 KB - 1.25x memory usage +15.66 KB
# **All measurements for memory usage were the same**