Soloplan / whatson

Build status monitoring for Windows with support for Jenkins, Travis-CI, CC.NET (alternative to CCTray)
MIT License
19 stars 4 forks source link

Improve performance when opening the application from tray #10

Closed steffen-wilke closed 4 years ago

steffen-wilke commented 4 years ago

When opening the tool from the tray icon, currently the application re-initializes itself completely. This causes a major performance issue on an operation that is intended to be quick and seamless.

We need to prevent this and make sure that the application keeps its state even though it is minimized to the tray.

krzysztof-lorenc commented 4 years ago

I'm not sure if that is actually a problem. For example, new versions of Skype works also exactly that way. The benefit of this is lower memory consumption, assuming that we free the memory correctly.

steffen-wilke commented 4 years ago

It is a problem. Depending on the configuration, it takes up multiple seconds for the application to even show up. For a tool that is intended to provide a quick overview, this is a major UX issue.

dominikgolda commented 4 years ago

I tried using VirtualizingStackPanel.IsVirtualizing="True" in ConnectorsTreeView.mainTreeView. It improves show performance, but it has some side effects.

  1. If you have partially visible expanded group - like on screenshot below - the app will eat lot of CPU. I doesn't happen in simple app, but it my be difficult to find what we are doing wrong. 2020-01-17_11h36_54
  2. Improvement is strongly dependent on how many projects are visible on screen. If all are visible at once then there is no difference.
  3. Sometimes when opening/closing/opening window fast exception is thrown. See here. I haven't found 100% working solution for this.
dominikgolda commented 4 years ago

We no longer close the window when it is minimized to tray.