Skip to content

Instantly share code, notes, and snippets.

@vtjnash
Forked from GlenHertz/slow_performance.jl
Created May 3, 2014 03:49
Show Gist options
  • Save vtjnash/27ff622b2cbed22b51dc to your computer and use it in GitHub Desktop.
Save vtjnash/27ff622b2cbed22b51dc 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
end
T1Type() = T1Type(
0.0)
type Ts
T1::T1Type
end
Ts() = Ts(T1Type())
function Base.show(io::IO, fs::Vector{Ts})
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 for f in fs]
Float64[f.T1.f1 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