Re: Adobe Lightroom 6 Coming Very Soon
Marsu42 said:
Sure, but I was talking about the *os* - and with recent hardware, that's 3gb which allows for a ~2gb LR process as lots of things are loaded alongside with windows.
Actually, it's a bit more complex than this. 32 bit CPU can access more than 4GB of
physical RAM (exactly how 16 bit ones could access more than 64K...), but different version of Windows put different limits for how much
physical memory is actually usable, regardless of how much is installed (anybody interested can look here: https://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx).
Then, applications don't see
physical memory. Each of them sees a
virtual one. In a 32 bit system each application always sees 4GB of virtual memory (regardless of how much physical memory is installed) - just 2GB are usable by the application, the other 2 are used to "map" DLLs and other things that need a memory address. The /3GB switch allows for increasing the former at the expenses of the latter. 32 bit applications running on a 64 bit OS, can see up to the full 4GB of virtual memory.
Virtual memory is mapped to physical one (or even disk swap space) using some CPU features designed for that - since at least the Intel 80386.
The operating systems takes care of that (and managing virtual RAM requires RAM as well...), and manages its own RAM (separated from that used by applications by the CPU protection mechanism). How much physical RAM is available depends on how much is actually used by the OS and all running applications. If physical RAM gets scarce, the OS swaps some virtual RAM to disk, and it slow downs a lot applications that got memory swapped to disk.
But there are also other things that need a memory address. For example, video cards memory
To allow the system access the video card memory, it needs to be "mapped" to a memory address within the physical 4GB boundary, and this is made at the expenses of RAM. RAM could be "relocated" above the 4GB boundary by the hardware - but in doing so it can become inaccessible by some 32 bit OS. Thereby, the larger the video card memory, the more usable RAM is "wasted" (or the video card may use less memory than you bought if for...)
Another issue is how application use memory. Memory can become "fragmented", and an application may fail to get a memory block large enough when needed even if there is available memory, but it's not "contiguous". That can happen more easily when the virtual memory overall size is smaller - as it happens on 32 bit systems.
For memory intensive applications, today using a 32 bit system makes little sense.