AU-ExoMars / PCOT

Pancam Operations Toolkit
MIT License
3 stars 0 forks source link

Big images are slow in the canvas #72

Open jimfinnis opened 1 month ago

jimfinnis commented 1 month ago

Accidentally loaded a 6k by 7k RGB image. The canvas slowed to a crawl. Not sure what to do about this; I doubt we'll ever be dealing with images this large. Profiling in Python is amusing, but that would clearly be the first step.

We do have profiling in the canvas already. This is what I get:

INFO 2024-09-24 11:24:32,741 pcot.utils.deb: Timer paint rgb crop: 0.0000, cum 0.0000
INFO 2024-09-24 11:24:33,667 pcot.utils.deb: Timer paint norm: 0.9260, cum 0.9260
INFO 2024-09-24 11:24:39,102 pcot.utils.deb: Timer paint overlay: 5.4353, cum 6.3613
INFO 2024-09-24 11:24:39,103 pcot.utils.deb: Timer paint cursor: 0.0005, cum 6.3619
INFO 2024-09-24 11:24:39,679 pcot.utils.deb: Timer paint resize: 0.5756, cum 6.9375
INFO 2024-09-24 11:24:39,682 pcot.utils.deb: Timer paint draw image: 0.0041, cum 6.9416
INFO 2024-09-24 11:24:39,683 pcot.utils.deb: Timer paint annotations: 0.0003, cum 6.9419
INFO 2024-09-24 11:24:39,683 pcot.utils.deb: Timer paint hook: 0.0001, cum 6.9420

So it's pretty clear that the culprit is the DQ overlay, and to a lesser extent the normalization. If I turn those off before loading the image we get decent performance.

I don't think there's anyway around this so marking as WONTFIX but leaving it open.