My code has a large set of available 'cells' (user defined type).  At each 
iteration we add some cells to the available cells set, iterate over it, 
find the 'best' cell, and delete it from the available cells set (every 
cell is added and deleted from available set exactly once, I am not worried 
about deletion from a perfomance perspective).

Profiling the program, I see that it spends about half its time in the line 
where we iterate over the available cells :

4101 ...lia/rgb_notebook.jl; run; line: 144
      5    ...lia/rgb_notebook.jl; find_best_point; line: 82
       2 no file; Voxel; line: 0
      1714 ...lia/rgb_notebook.jl; find_best_point; line: 86               
               <- THIS LINE
       223 dict.jl; skip_deleted; line: 670
       535 dict.jl; skip_deleted; line: 671
       309 dict.jl; skip_deleted; line: 672
       326 dict.jl; skip_deleted; line: 674
      2247 ...lia/rgb_notebook.jl; find_best_point; line: 87

86   for cell in available_pts

It seems like the way that dict deletes from set / iterates over it, is 
causing performance issues, does anyone have any ideas how to improve this?

Reply via email to