BioJulia / IntervalTrees.jl

A data structure for efficient manipulation of sets of intervals
MIT License
44 stars 17 forks source link

Optimization #25

Closed dcjones closed 7 years ago

dcjones commented 7 years ago

Revisiting my old hobby of optimizing IntervalTrees.

So far:

My simple benchmark goes from:

TODO:

codecov-io commented 7 years ago

Codecov Report

Merging #25 into master will decrease coverage by 1.58%. The diff coverage is 92.39%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #25      +/-   ##
==========================================
- Coverage    93.2%   91.62%   -1.59%     
==========================================
  Files           3        3              
  Lines         692      776      +84     
==========================================
+ Hits          645      711      +66     
- Misses         47       65      +18
Impacted Files Coverage Δ
src/slice.jl 93.22% <75%> (-6.78%) :arrow_down:
src/IntervalTrees.jl 92.72% <94.19%> (-1.53%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 1f1bb8b...5da2d2d. Read the comment docs.

bicycle1885 commented 7 years ago

Cool! I'm interested in the performance impact of simple iteration over all intervals in a tree, because when I tried it before it was much slower than I expected.

dcjones commented 7 years ago

Curiously iteration is about the same on julia 0.5, but significantly slower with this change on master. I'll look into that. :frowning: