Closed jpjones76 closed 3 years ago
I've pushed one commit that drops the memory use by a factor of 5 and read time by 40%, but that's only slightly less terrible. I can't improve it further without rewriting the time library. The remaining slowdown -- which is extremely significant -- is because :t
is an Array{Int64, 2}
. Accounting for a gap needs to call vcat
, which causes the slowdown. I hadn't imagined files with 60,000 gaps could exist.
This is great - I think files with 60,000 are very much an edge case.
Sample file submitted by @tclements has bizarre, impossibly high memory consumption in
read_data
(memory overhead >40000%, or ~3 orders of magnitude greater than any other known file).Originally posted by @jpjones76 in https://github.com/jpjones76/SeisIO.jl/issues/62#issuecomment-719848007