A memory leak is a very specific kind of software defect that causes memory usage to grow over time. It most often occurs when memory is allocated but not symmetrically freed, but there are other patterns that can it. Roon is known, at least in prior versions, to have at least one memory leak that causes memory usage to grow over time. They claim to have fixed that issue in the latest release but I don’t have that release yet and, to my knowledge, the fix hasn’t been confirmed by users.
There are two other issues that have come up in this thread that are not memory leaks:
-
For me, but not others, Roon + Debian Bookworm uses much more memory than Roon + other distributions including Ubuntu (JJ), Debian Bullseye, Arch.
-
My memory baseline, on OS distributions other than Bookworm, is higher by a small-ish margin than some others.
With respect to #1:
I understand what you’re suggesting about how my memory use might be higher because of a GUI or other packages. @Steef_de_Bruijn and I are both using Docker images that are created with minimal inclusions. Specifically, we’re both using Debian Slim. Even more specifically, we are using a Docker image created by @Steef_de_Bruijn - it’s the same exact image bits uploaded to Docker Hub by @Steef_de_Bruijn and downloaded from there by me. So I don’t think we can attribute it to GUI or which packages are included.
I don’t know why this is the case. He runs Docker on MacOS (I think), I run it on Synology. Maybe there’s something about the host/guest interaction. Maybe it’s something about my configuration. At this point, though, it really doesn’t matter because I’m happy with the alternatives.
With respect to #2:
I’m not going to worry too much about this, either. The difference is pretty minimal. Maybe my library is bigger. I also do quite a bit with integrations including 5 rooExtend boxes, a rooPieeee, and HomeAssistant integration. Each of those probably consumes some memory. I use a Linn endpoint, and that possibly pulls some stuff into memory. Who knows. It’s just not really worth figuring out for me.
I can’t answer this because I don’t know. Roon uses LevelDB, which is an in-memory, NoSQL key-value store. Memory use is definitely proportional to library size but I can’t say whether or not it differs much for local tracks vs online tracks. I would guess that the per-track difference is just the difference between the size of the stored metadata for a local track and the stored metadata for a streaming track. I don’t know enough about what Roon stores to know if that’s a negligible or material difference.
I’m thinking that it may be more about the other stuff going on in my setup, such as extensions, but that’s just a guess. But again, this is just about why my baseline is higher for non Bookworm use. I have no idea why Bookworm causes it to more than double.