Skip to content
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

Gradual performance degradation by continuous running #114

Open
Searinox opened this issue Dec 1, 2021 · 2 comments
Open

Gradual performance degradation by continuous running #114

Searinox opened this issue Dec 1, 2021 · 2 comments

Comments

@Searinox
Copy link

Searinox commented Dec 1, 2021

No column sorting was used in the UI other than the Contacts and Subscriptions lists. The performance of the application degrades gradually as the application runs for longer. This is not seen in continuous processor usage but rather in very brief, 1-2 second spikes of activity occurring about once a minute. The spikes gradually become more and more intense until they use - on my 4 core + HT cpu - 50% of processor, at which point certain mundane activities such as watching a video or stream are interrupted by stutters when the activity occurs.

It takes a few days to a week of continuous running for the degradation to build up to these levels. This has been observed several times over the course of a month of running MuWire and is resolved by restarting the application every few days.

@Searinox Searinox changed the title Performance degradation after continuous running of about a week Gradual performance degradation by continuous running Dec 1, 2021
@zlatinb
Copy link
Owner

zlatinb commented Dec 3, 2021

Hi,

from the description of the problem it appears that most likely a garbage collection occurs, and something is causing it to occur more frequently over time.

One way to diagnose this is to attach the visualvm tool to MuWire. If you are running the .zip distribution that should be easy to do. Visualvm used to come with JDK, but that may have changed - check the bin folder of the JDK installation for a visualvm.exe file. If it's not there check https://visualvm.github.io/download.html

Once attached, look at the "time spent in GC" graph. A healthy application would have a spike during initial startup but afterwards the time should be less than 1%. If my theory is correct, over time that graph should increase.

Let me know if you manage to attach visualvm to MuWire; we'll also need to take a heap snapshot once a day while MuWire is running to catch any possible reference leaks.

@Searinox
Copy link
Author

Been running this for a few days now. Usually by this point the CPU spikes would have extended to 30-40% and lasted for multiple seconds. I'm not seeing it anymore. In addition, the ability to run at low prio when hidden would make these impacts minimal. Gonna keep an eye for awhile longer but it's looking good so far.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants