RareDevs / Rare

GUI for legendary. An Epic Games Launcher open source alternative
GNU General Public License v3.0
653 stars 23 forks source link

[BUG] high CPU usage when disconnected #420

Open dman-os opened 1 month ago

dman-os commented 1 month ago

Describe the bug

If in a middle of a download, your connection goes out, the CPU usage goes up significantly.

To Reproduce

Steps to reproduce the behavior:

  1. Start a new download.
  2. Disable wi-fi or disconnect ethernet.
  3. Observe CPU usage.

Expected behavior

CPU usage shouldn't be so high when it's doing nothing.

System information

Please complete the following information

Additional context

I'm also surprised at the usage of 4GiB of ram for a downloader. On the other hand, I really appreciate that the downloads are resumable.

dman-os commented 1 month ago

Oh wait, could this be an issue with legendary? I reported this here because the name of the executable is rare but I see now it's just using legendary as a library.

loathingKernel commented 1 month ago

If in a middle of a download, your connection goes out, the CPU usage goes up significantly.

I reported this here because the name of the executable is rare but I see now it's just using legendary as a library.

I can reproduce this issue locally when disconnecting the network cable too with both Rare and using Legendary's CLI interface. If you can reproduce it with Legendary too, opening an issue there too could be useful. On our side, I have to look into it further still, so I don't know if it is amendable.

I'm also surprised at the usage of 4GiB of ram for a downloader.

This depends on when the RAM usage was measured. Most of Rare's RAM usage comes from the game cover art loaded to display the library, so depending on the size of the library it can get "high", but to give you a reference, my own library with 400+ games, Rare uses around 360MiB of RAM and around 150MiB of that is Qt's libraries.

If the RAM usage was measures while downloading that is largely outside of Rare's control (and Legendary can't do much about it either until it has an on-disk cache mechanism) and it depends on the game itself, the number of download workers and the maximum shared memory defined in settings (workers default to the number of CPU cores and the shared memory depends on the game's assets, if they are unset).