Created
April 29, 2014 00:11
-
-
Save GlenHertz/11387643 to your computer and use it in GitHub Desktop.
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
# This stripped down example that has odd performance. | |
# It takes about 4 seconds to compile and allocates about 550MB of memory | |
type T1Type | |
f1::Float64 | |
f2::Float64 | |
f3::Float64 | |
f4::Float64 | |
f5::Float64 | |
f6::Float64 | |
f7::Float64 | |
f8::Float64 | |
f9::Float64 | |
f10::Float64 | |
f11::Float64 | |
f12::Float64 | |
f13::Float64 | |
f14::Float64 | |
f15::Float64 | |
f16::Float64 | |
f17::Float64 | |
f18::Float64 | |
f19::Float64 | |
f20::Float64 | |
f21::Float64 | |
f22::Float64 | |
f23::Float64 | |
f24::Float64 | |
f25::Float64 | |
f26::Float64 | |
f27::Float64 | |
f28::Float64 | |
f29::Float64 | |
f30::Float64 | |
f31::Float64 | |
f32::Float64 | |
f33::Float64 | |
f34::Float64 | |
f35::Float64 | |
f36::Float64 | |
f37::Float64 | |
f38::Float64 | |
f39::Float64 | |
f40::Float64 | |
f41::Float64 | |
f42::Float64 | |
f43::Float64 | |
f44::Float64 | |
f45::Float64 | |
f46::Float64 | |
f47::Float64 | |
f48::Float64 | |
f49::Float64 | |
f50::Float64 | |
f51::Float64 | |
f52::Float64 | |
f53::Float64 | |
f54::Float64 | |
f55::Float64 | |
f56::Float64 | |
f57::Float64 | |
f58::Float64 | |
f59::Float64 | |
f60::Float64 | |
f61::Float64 | |
f62::Float64 | |
f63::Float64 | |
f64::Float64 | |
f65::Float64 | |
f66::Float64 | |
f67::Float64 | |
f68::Float64 | |
f69::Float64 | |
f70::Float64 | |
f71::Float64 | |
f72::Float64 | |
f73::Float64 | |
f74::Float64 | |
f75::Float64 | |
f76::Float64 | |
f77::Float64 | |
f78::Float64 | |
f79::Float64 | |
f80::Float64 | |
end | |
T1Type() = T1Type( | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | |
type T2Type | |
f1::Float64 | |
f2::Float64 | |
f3::Float64 | |
f4::Float64 | |
f5::Float64 | |
f6::Float64 | |
f7::Float64 | |
f8::Float64 | |
f9::Float64 | |
f10::Float64 | |
f11::Float64 | |
f12::Float64 | |
f13::Float64 | |
f14::Float64 | |
f15::Float64 | |
f16::Float64 | |
f17::Float64 | |
f18::Float64 | |
f19::Float64 | |
f20::Float64 | |
f21::Float64 | |
f22::Float64 | |
f23::Float64 | |
f24::Float64 | |
f25::Float64 | |
f26::Float64 | |
f27::Float64 | |
f28::Float64 | |
f29::Float64 | |
f30::Float64 | |
f31::Float64 | |
f32::Float64 | |
f33::Float64 | |
f34::Float64 | |
f35::Float64 | |
f36::Float64 | |
f37::Float64 | |
end | |
T2Type() = T2Type( | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, | |
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | |
type T3Type | |
f1::Float64 | |
end | |
T3Type() = T3Type(0.0) | |
type Ts | |
T1::T1Type | |
T2::T2Type | |
T3::T3Type | |
end | |
Ts() = Ts(T1Type(), T2Type(), T3Type()) | |
function Base.show(io::IO, fs::Vector{Ts}) | |
Float64[f.T1.f1 for f in fs] | |
Float64[f.T1.f2 for f in fs] | |
Float64[f.T1.f3 for f in fs] | |
Float64[f.T1.f4 for f in fs] | |
Float64[f.T1.f5 for f in fs] | |
Float64[f.T1.f6 for f in fs] | |
Float64[f.T1.f7 for f in fs] | |
Float64[f.T1.f8 for f in fs] | |
Float64[f.T1.f9 for f in fs] | |
Float64[f.T1.f10 for f in fs] | |
Float64[f.T1.f11 for f in fs] | |
Float64[f.T1.f12 for f in fs] | |
Float64[f.T1.f13 for f in fs] | |
Float64[f.T1.f14 for f in fs] | |
Float64[f.T1.f15 for f in fs] | |
Float64[f.T1.f16 for f in fs] | |
Float64[f.T1.f17 for f in fs] | |
Float64[f.T1.f18 for f in fs] | |
Float64[f.T1.f19 for f in fs] | |
Float64[f.T1.f20 for f in fs] | |
Float64[f.T1.f21 for f in fs] | |
Float64[f.T1.f22 for f in fs] | |
Float64[f.T1.f23 for f in fs] | |
Float64[f.T1.f24 for f in fs] | |
Float64[f.T1.f25 for f in fs] | |
Float64[f.T1.f26 for f in fs] | |
Float64[f.T1.f27 for f in fs] | |
Float64[f.T1.f28 for f in fs] | |
Float64[f.T1.f29 for f in fs] | |
Float64[f.T1.f30 for f in fs] | |
Float64[f.T1.f31 for f in fs] | |
Float64[f.T1.f32 for f in fs] | |
Float64[f.T1.f33 for f in fs] | |
Float64[f.T1.f34 for f in fs] | |
Float64[f.T1.f35 for f in fs] | |
Float64[f.T1.f36 for f in fs] | |
Float64[f.T1.f37 for f in fs] | |
Float64[f.T1.f38 for f in fs] | |
Float64[f.T1.f39 for f in fs] | |
Float64[f.T1.f40 for f in fs] | |
Float64[f.T1.f41 for f in fs] | |
Float64[f.T1.f42 for f in fs] | |
Float64[f.T1.f43 for f in fs] | |
Float64[f.T1.f44 for f in fs] | |
Float64[f.T1.f45 for f in fs] | |
Float64[f.T1.f46 for f in fs] | |
Float64[f.T1.f47 for f in fs] | |
Float64[f.T1.f48 for f in fs] | |
Float64[f.T1.f49 for f in fs] | |
Float64[f.T1.f50 for f in fs] | |
Float64[f.T1.f51 for f in fs] | |
Float64[f.T1.f52 for f in fs] | |
Float64[f.T1.f53 for f in fs] | |
Float64[f.T1.f54 for f in fs] | |
Float64[f.T1.f55 for f in fs] | |
Float64[f.T1.f56 for f in fs] | |
Float64[f.T1.f57 for f in fs] | |
Float64[f.T1.f58 for f in fs] | |
Float64[f.T1.f59 for f in fs] | |
Float64[f.T1.f60 for f in fs] | |
Float64[f.T1.f61 for f in fs] | |
Float64[f.T2.f1 for f in fs] | |
Float64[f.T2.f2 for f in fs] | |
Float64[f.T2.f3 for f in fs] | |
Float64[f.T2.f4 for f in fs] | |
Float64[f.T2.f5 for f in fs] | |
Float64[f.T2.f6 for f in fs] | |
Float64[f.T2.f7 for f in fs] | |
Float64[f.T2.f8 for f in fs] | |
Float64[f.T2.f9 for f in fs] | |
Float64[f.T2.f10 for f in fs] | |
Float64[f.T2.f11 for f in fs] | |
Float64[f.T2.f12 for f in fs] | |
Float64[f.T2.f13 for f in fs] | |
Float64[f.T2.f14 for f in fs] | |
Float64[f.T2.f15 for f in fs] | |
Float64[f.T2.f16 for f in fs] | |
Float64[f.T2.f17 for f in fs] | |
Float64[f.T2.f18 for f in fs] | |
Float64[f.T2.f19 for f in fs] | |
Float64[f.T2.f20 for f in fs] | |
Float64[f.T2.f21 for f in fs] | |
Float64[f.T2.f22 for f in fs] | |
Float64[f.T2.f23 for f in fs] | |
Float64[f.T2.f24 for f in fs] | |
Float64[f.T2.f25 for f in fs] | |
Float64[f.T2.f26 for f in fs] | |
Float64[f.T2.f27 for f in fs] | |
Float64[f.T2.f28 for f in fs] | |
Float64[f.T2.f29 for f in fs] | |
Float64[f.T3.f1 for f in fs] | |
Float64[f.T2.f30 for f in fs] | |
Float64[f.T2.f31 for f in fs] | |
Float64[f.T2.f32 for f in fs] | |
Float64[f.T2.f32 for f in fs] | |
Float64[f.T2.f33 for f in fs] | |
Float64[f.T2.f34 for f in fs] | |
Float64[f.T2.f35 for f in fs] | |
Float64[f.T2.f36 for f in fs] | |
Float64[f.T2.f37 for f in fs] | |
Float64[f.T1.f62 for f in fs] | |
Float64[f.T1.f63 for f in fs] | |
Float64[f.T1.f64 for f in fs] | |
Float64[f.T1.f65 for f in fs] | |
Float64[f.T1.f66 for f in fs] | |
Float64[f.T1.f67 for f in fs] | |
Float64[f.T1.f68 for f in fs] | |
Float64[f.T1.f69 for f in fs] | |
Float64[f.T1.f70 for f in fs] | |
Float64[f.T1.f71 for f in fs] | |
Float64[f.T1.f72 for f in fs] | |
Float64[f.T1.f73 for f in fs] | |
Float64[f.T1.f74 for f in fs] | |
Float64[f.T1.f75 for f in fs] | |
Float64[f.T1.f76 for f in fs] | |
Float64[f.T1.f77 for f in fs] | |
Float64[f.T1.f78 for f in fs] | |
Float64[f.T1.f79 for f in fs] | |
end | |
function Base.show(io::IO, f::Ts) | |
show(io, [f]) | |
end | |
@time t = Ts[Ts(), Ts()] | |
@time println(t) # about 4 sec, 550MB |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment