this post was submitted on 10 Nov 2023
364 points (94.4% liked)

Technology

59737 readers
3604 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 2 years ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] kautau -1 points 1 year ago* (last edited 1 year ago)

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.