I am convinced that Drepper's insistence on dynamic linking has set the linux desktop useability and developer friendliness back literal decades.
Now it seems even the most trivial of apps needs more than that just to start running, and on a workstation, less than a year old with 4 cores of i7 and 32GB of RAM, I still experience lots of lag and swapping (fast SSD helps, althougn not much) doing simple things like reading an email.
According to Activity Monitor, right now:
• 4.26 GB are being used by apps
• 19.52 GB are cached files
• 8.22 GB are just sitting idle (!)
Now, I'm not running anything particularly intensive at the moment, and I make a point of avoiding Electron apps. I also rebooted just a few hours ago for an unrelated reason.
But the fact is that I've monitored this before—I very rarely manage to use all my RAM. The OS mostly just uses it to cache files, which I suppose is as good a use as any.
I do that personally too, but in a work environment that is unfortunately not always possible --- and also responsible for much of the RAM usage too.
What I failed to mention was that the rootfs is also eating into that (ramdisk). In your case I'm guessing your rootfs was on disk.
https://answers.microsoft.com/en-us/msoffice/forum/all/teams...
There's a screenshot in there showing it taking 22GB of RAM. I've personally never seen it go that high, but the 10-12GB of RAM that I have seen is absolutely ludicrous for a chat app. Even when it's initially started it takes over 600MB. Combine that with a few VMs that also need a few GB of RAM each, as well as another equally-bloated Electron app or two, and you can quickly get into the swapping zone.
Could someone estimate how much software nowadays is bloated by duplicated modules?
It doesn't alter the fundamental point: shared libraries save both persistent storage and runtime memory.
Which is a significant fraction of everything even if you call simple like printf.
> It doesn't alter the fundamental point: shared libraries save both persistent storage and runtime memory.
I fail to see the argument for this. Dynamic linking deduplicates dependencies and allows code to be mapped into multiple processes "for free".
https://stackoverflow.com/questions/3430400/linux-static-lin...
I've also linked this Zig post into that list (and happy to add further languages if you can provide a link that shows that they have good out-of-the-box static linking support).
I never realised people were moaning about shared libraries.
(e.g. I have Firefox running under Capsicum: https://bugzilla.mozilla.org/show_bug.cgi?id=1607980)
Looking at how a browser, an IDE, and a few compilation processes will gladly chew through 8GB of memory... it’s not necessarily horrible, but this is a modern contrivance.