- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
Apple has a memory problem and we’re all paying for it::Apple still sells expensive “Pro” computers with just 8GB of RAM and charges a fortune for more.
Apple has a memory problem and we’re all paying for it::Apple still sells expensive “Pro” computers with just 8GB of RAM and charges a fortune for more.
Yeah MacOS has the best virtual memory system of any major OS (if you’re running Linux try https://github.com/Tookmund/Swapspace, it’s excellent!) so most people don’t care, because they never really run out of memory. But 8GB is inexcusable for a “Pro” product, and their upcharges for RAM are laughably priced.
Edit: I said that MacOS has the best virtual memory system of modern OS’s. I stand by that. I also criticized Apple for their asinine pricing, which I stand by.
I got downvoted for those statements
Let’s compare virtual memory systems
Windows uses a pagefile, similar to how MacOS handles virtual memory. However, when an application needs more memory on the fly, the Windows subsystem throws an out of memory error. You can for loop a try/catch until the pagefile size changes, but if someone has hardcoded the pagefile size in their prefs, or windows hasn’t finished generating a larger pagefile, it will continue to throw a memory error. All windows memory requests are the same, but windows only virtualizes the requests off hardware once the memory pressure is too high.
Linux uses swap. You either have swap partitions or swap files. Both are manually specified in size. If you exceed the size of the swap partition or swap file, out of memory error. That can be avoided by using the software I referenced above, which will generate a new swap file on the fly as your memory pressure builds. Again, Linux allows all memory requests to be on hardware until the RAM is full, and then begins storing memory to swap.
All of MacOS memory is virtualized. Applications requesting real hardware memory are always getting virtual memory pages. As memory pressure increases, so does the size of hyberfil.sys, the Mac pagefile, but applications can request more memory, and get it allocated, with no out of memory errors, it’s seamless. When you know your hardware is running on a fast SSD, you can do that because for most users it’s not noticeable in their day to day activities. But pro users need hardware memory for things like video editing. So MacOS let’s you request wired memory but is limited based on the total memory usage, after you request wired memory, your requests are granted but potentially granted and then returned on request as being passed through to virtual memory, if necessary when the memory pressure is too high.