Skip to content

Instantly share code, notes, and snippets.

@GlenHertz
Created April 29, 2014 00:11
Show Gist options
  • Save GlenHertz/11387643 to your computer and use it in GitHub Desktop.
Save GlenHertz/11387643 to your computer and use it in GitHub Desktop.
# 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