-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimise UI performance when dragging TMA tracks #4729
Comments
@saulhidalgoaular - here's a second sample file. In it I've broken up the TMA solution, and generated infills. 8_day_track_with_sensor_and_TMA_infills.dpf.zip The performance drop happened after I generated the infills. This almost certainly looks like the cause of the error. I welcome you profiling the update. Maybe each DynamicInfillSegment should cache the start/end points of the previous leg. If these values haven't updated, then the infill doesn't need to recalculate. But, let's see how your investigation goes. |
@saulhidalgoaular - you've solved the worst bottleneck in this code. I'd like you to carry on please, and analyse where we're losing performance through excessive calls to I can produce a new sample data file that contains more sensor data. It would be great if Debrief could still be reactive with 24 hours of sensor data in the 8 day period. Aah, but I appreciate we can only go so far with the current algorithms. At some point I expect we're going to have to refactor how we handle mouse dragging, and how/where we update the contents of the stacked dots (Bearing Residuals plot). |
1 similar comment
@helenayele - when you get chance, could you retest the drag-track performance with that 8-day file? |
Okay , Now I tried to test on develop branch, again the speed is not that much satisfactory , see how it behaves in this video: |
An analyst is working on a really large dataset:
When he drags the TMA solution, each redraw of the Stacked Dots takes around 0.1 seconds (very roughly). This isn't interactive enough to keep up with his mouse movements.
We suspect the time lag is because of the volume of processing being conducted, maybe in these areas:
Once Ian has produced a sample dataset for this issue, we can start considering/identifying bottlenecks.
One suspicion is that we're re-calculating/re-rendering more data than is necessary. When a single leg of data is being dragged, we only have to re-do the points for that leg - the values for the other legs are unchanged.
In the scenario in question we have 18 legs (call it 20). If we only re-calculated the data for the current leg, that would only take 5% (1/20) of the time that it's currently taking.
See the video below, of a much simpler scenario:
A large sample data-file is attached.
8_day_track_with_sensor.dpf.zip
The text was updated successfully, but these errors were encountered: