* misc: Defer Image loading for ImagePanel
Speeds up UI render time.
* misc: Use Flowable to ensure UI only works on the latest result
* misc: Attempt to add loading indicator to InstancesTab
Broken, Issue is that because instance building is run on the event
thread, The "true" is sent async to the loading view.
Which occurs on the next event loop operation.
But "false" is sent after,
so by the time the next event loop occurs the UI already is reset.
Doing a direct operation is also impossible it seems,
as Swing requires instance building to finish before updating the UI.
Truly a hell.
* misc: Run gc once launcher is ready
Memory, we need memory.
* misc: Add invokeLater override to HierarchyPanel
To prevent NPEs caused by actions take when UI is destroyed.
* misc: Move loading indicator into navigation panel
Less jumpy UI, and connected loading to sort / filter.
* misc: Log export issue on separate thread
Logging is an IO task, this slows down UI render time.
* misc: Observe instances on a separate thread
* misc: Render UI in chunks
To lower the impact of rendering the UI.
* misc: Move GBC into subscribe sequence
* misc: InstancesTabViewModel: Only sample values every second
* misc: Swap order of sampling after replay
This allows updates to come through, but not overwhelm the UI.
* misc: Simplify class functions
* misc: Add log instance render performance
* misc: Drop sample delay to 100 milliseconds
* misc: Replace sample with throttleLatest
* misc: Drop replay from InstancesTabViewModel
* misc: Replace replay with throttleLatest in ServersTabViewModel
* misc: Implement HierarchyPanel in InstancesTab
* fix: Ensure Instances search maintains state through composition
* fix: Ensure Instances sort maintains state through composition
* misc: Simplify empty logic in InstancesListPanel
* fix: Do not revalidate / repaint in InstancesListPanel
Revalidation / Repainting is computationally intensive.
Swing already takes care of this.
* misc: Add functionality to handle disposables in HierarchyPanel
CompositeDisposable is perfect for this task.
* misc: Add PerformanceManager to HierarchyPanel
So we can debug UI creation speeds
* misc: Implement HierarchyPanel to InstancesListPanel
Else getInstancesList.subscribe causes multiple threads
* misc: Remove reference InstancesTab from child components
None of the children need it anymore.
* misc: Swap InstancesTabViewModel.filteredInstances to IO scheduler
It seems to be faster.
* Revert "fix: Do not revalidate / repaint in InstancesListPanel"
This reverts commit 44a2d8dd
* misc: Replay last instances value in InstancesTabViewModel
This can decrease UI render by 25%.
* fix: Ensure Instances scroll maintains state through composition