Hacker News new | ask | show | jobs
by cogman10 152 days ago
Absolutely it does, for 2 different reasons.

First up, the nature of dlls is that the same dll for multiple applications gets saved in memory just once. If you have 2 windows applications and one is 32bit and the other 64bit, then both of those applications end up loading up effectively the same dlls, but one is compiled for 64bit apps and the other 32. That nearly doubles the amount of ram needed in a mixed system.

But then there's just the fact that 64bit code by it's nature uses and passes around 64bit pointers everywhere. That's not quite as significant but it does have an effect.

The other part that ends up adding to the memory consumption is from XP on microsoft added compatibility layers. What those effectively did is distribute a different set of dlls based on the application being launched. So now instead of having 1 copy of the dlls like you did with 95, 98 and ME you can end up with potentially 3 or 4 different dlls. And that's ultimately exploded as more versions of windows have been released.

2 comments

If you'd ever opened a directory of a program in windows you'd know that they always bring their own dlls, windows is not debian.
Usually, yes. Those aren't the dlls I'm referring to. I'm talking about common dlls that every windows app needs like kernel32.dll.

Every windows app relies on os provided dlls to some extent.

Then explain how Windows 7 64 bit uses much less memory than Windows 11.