nasa / openmct

A web based mission control framework.
https://nasa.github.io/openmct/
Other
12.04k stars 1.25k forks source link

Improve telemetry table performance #7268

Closed akhenry closed 7 months ago

akhenry commented 10 months ago

Is your feature request related to a problem? Please describe. Telemetry Tables use far too much CPU and memory, even with a single telemetry point at 10Hz.

eg. Create a 10 Hz SWG and drop it into a telemetry table. Open Chrome task manager and observe that CPU usage is 100+% and memory usage is over 500MB.

Describe the solution you'd like I think that a 70% reduction in CPU utilization and at least 50% reduction in memory usage is achievable.

  1. Tables should be limited to a fixed number of rows (Let's make it configurable, but 50 is probably a reasonable default). Rows beyond this can be accessed via paging. A fixed height should remove costly reflows, and limiting tables to 50 rows (ie. 50 telemetry values) should radically reduce memory usage.
  2. Throttle table updates to 1Hz. when new data arrive, or when time bounds change batch the changes and only update the table once per second.
  3. De-reactify table rows. Right now they are Vue 3 proxy objects and this is costly. Right now rows are being made reactive by being passed as a property to TelemetryTableRow. There's no need for this, rowIndex should be all that we need to trigger reactivity.
charlesh88 commented 9 months ago

Solution notes as of January 2024: "Performance" Mode

Unlimited Mode

Screenshot 2024-01-04 at 3 19 27 PM

jvigliotta commented 9 months ago

Testing

CPU Performance

Memory/Paging/Mode Performance

Also

https://github.com/nasa/openmct/issues/7147 with row number always visible

rukmini-bose commented 8 months ago

Testathon 2/8/2024

charlesh88 commented 8 months ago

Testathon 2024-02-08: verified NOT fixed, has multiple issues: Screenshot 2024-02-08 at 2 35 33 PM

We should change the UI like this:

jvigliotta commented 7 months ago

More Testing!

shefalijoshi commented 7 months ago
jvigliotta commented 7 months ago

Testing

More testing is above comment: https://github.com/nasa/openmct/issues/7268#issuecomment-1998560136

Make sure none of that is true anymore.

akhenry commented 7 months ago
Verified fixed Open MCT Version Memory CPU
3.2.0 222MB 50.2
4.0.0 117 4.2