-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsandbox.jl
41 lines (36 loc) · 1.01 KB
/
sandbox.jl
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
function make_number(nt)
number = 0.
for n in keys(nt)
number += nt[n] + rand()
end
return number
end
function bad_loop(variants)
numbers = Vector{Float64}(undef, size(variants, 1))
for (index, v) in enumerate(variants)
nt = NamedTuple{(v,)}([rand()])
numbers[index] = make_number(nt)
end
return numbers
end
function bad_loop_2(variants)
numbers = Vector{Float64}(undef, size(variants, 1))
nts = [NamedTuple{(v,)}([rand()]) for v in variants]
for (index, nt) in enumerate(nts)
numbers[index] = make_number(nt)
end
return numbers
end
variants = [Symbol("rs", i) for i in rand(Int, 100)]
@time bad_loop_2(variants)
function better_loop(variants)
numbers = Vector{Float64}(undef, size(variants, 1))
for (index, v) in enumerate(variants)
nt = Dict(v => rand())
numbers[index] = make_number(nt)
end
return numbers
end
variants = [Symbol("rs", i) for i in rand(Int, 100)]
@time bad_loop(variants)
@time better_loop(variants)