性能优化还是很重要。
具体看 julia performance tips. http://docs.julialang.org/en/release-0.4/manual/performance-tips/
此文感谢 QQ群中KDr2 大神指点。
type kBar# 换成immutalbe效果不大 ,但如果去掉Code字段(引用关系),性能提升很大。
Code ::ASCIIString # 建议改成Int格式 +immutable
DateTime ::Float64 # 如果改成Dates.DateTime影响不大
Close ::Float64
Open ::Float64
High ::Float64
Low ::Float64
PreClose ::Float64
OpenInterest ::Float64 #
Volume ::Float64
Amount ::Float64 #
Ratio ::Float64
end
function writebar(num::Int64)
data =Array(kBar,num) # 重要 预分配空间,有些地方用sizehint!
@inbounds for i =1:num # 重要 @inbounds
data[i]=kBar("SH600036",20150630,3312.1,3312.2,3314.3,3310.1,3312.2,6452455.0,4568712,1234564561.1,12.1)
end
return data
end
@time writebar(100000000)
二次结果:
12.937654 seconds (100.05 M allocations: 9.687 GB, 72.31% gc time)
37.238501 seconds (100.04 M allocations: 9.687 GB, 90.17% gc time)