Not really. Swap files are mapped as random access, meaning that the system doesn't have to load in the entire thing, it just seeks out and loads in the pieces it needs, whether it's an entire 64MB file or just 100kB out of 512MB. It's really quite efficient. In fact, since files can be mapped like this as a matter of course, it's just an extension of viewing RAM and disk space as a large varied-speed memory storage unit.
Other Unixen and Linux distros may do things differently - I've worked with ones that never purged and also weren't mapped efficiently (oy), but worked with ones that aggressively purged, sometimes to somewhat severe performance slowdowns. *shrug* Take your pick. Personally I think this hits a fairly decent balance, particularly with the current exponential resource allocation. Once you hit a certain level (depending on your current app use), it tends to stabilize pretty quickly.
You are right, it is not a serious issue with today's disk spaces. But "forgetting" an application in the swap files when there is already free available memory, is a big performance hit. I think the system sould be, following some kind of priority hierarchy, compact some VM and drag out of the swap files some applications, once physical memory becomes available. I am not suggesting to compact everytime all VM, but some portions of it that makes sense to, so that the most frequently accessed applications for example, be immediately in main memory when system usage makes that possible.
Actually, that's precisely what happens - the apps are only swapped out as newer accessed ones are requested. If you're only using Safari, Mail, and Word, for instance, but have IE, Excel, Mozilla, PhotoShop, InDesign, Quark and god knows what else also running, then only the first three will be in active memory. As they need more active RAM, if any of the others are using it, they'll be paged out first so the most recently used apps can have priority.
Actually, that's precisely what happens - the apps are only swapped out as newer accessed ones are requested.
I am saying something different. Assume that you have some applications eating all the available memory and, say, Safari is hidden and completely paged out. When you start to quit these applications and free memory, Safari does not move to main memory until you invoke it again, despite the fact it could be the last used application just before the others occupied the main memory and forced the page out. And when you invoke a paged out Safari, it could take more than 10 seconds, depending on the memory it had before the swapping. I am simply saying that the system could silently reallocate physical memory when possible to paged out applications, at least progressively.
Is there any hope that 10.3.3'll update iChat? I really want the ability to Voice Chat with Windoze AIM users... Maybe even video chat... Since Apple and AOL are sorta working together in other respects I would think this would be easy to implement... On my iChat list I have several buddies who appear to have the Audio chat capability but it's grayed as if he/she was already in another conference.... Comments? Brad, I know you're gonna comment on this
I am saying something different. Assume that you have some applications eating all the available memory and, say, Safari is hidden and completely paged out. When you start to quit these applications and free memory, Safari does not move to main memory until you invoke it again, despite the fact it could be the last used application just before the others occupied the main memory and forced the page out. And when you invoke a paged out Safari, it could take more than 10 seconds, depending on the memory it had before the swapping. I am simply saying that the system could silently reallocate physical memory when possible to paged out applications, at least progressively.
Right. And how is the OS supposed to know that you're *about* to enter Safari, instead of *about* to launch Photoshop and that live RAM will be needed immediately, necessitating a swap of Safari back out to disk?
My only reason for asking about the VM (when so much physical memory is available -- it must be), is because of the speed differences. No matter how smoothly the VM runs, it's slower than RAM. Which necessitated my question: until the physical RAM starts to get filled up by running apps and the OS, why start using VM so heavily?
Right. And how is the OS supposed to know that you're *about* to enter Safari, instead of *about* to launch Photoshop and that live RAM will be needed immediately, necessitating a swap of Safari back out to disk?
That's why I talked about some system of priorities hierarchy. The decision could be based on application access. For example, the system could check if there are active user applications and reallocate to them the physical memory once it is available. Perhaps not all, but some part of it, just to make the transition smoother. Of course there could be other criteria.
An active user application is one that the user is actively using - so as soon as you switch to it, it's paged into live RAM.
(Alternately, if an application is performing tasks in the background, like iTunes playing music, then that RAM needs to remain live at all times.)
There's no way to predict what the user will want next - it's what Turing called an o-machine. The best you can do is not break anything worse than the current state of the memory system... which means paging things in and out as applications request processor time, giving higher priority to recently user-used applications. The user indicates past preferences based on their use patterns, and that's as good as you can get.
An active user application is one that the user is actively using - so as soon as you switch to it, it's paged into live RAM.
(Alternately, if an application is performing tasks in the background, like iTunes playing music, then that RAM needs to remain live at all times.)
When I say active, I mean open, sorry for that. I picked up the wrong term.
Quote:
There's no way to predict what the user will want next - it's what Turing called an o-machine. The best you can do is not break anything worse than the current state of the memory system
Sure, you cannot predict what the user will want next, that's why I said a decision needs to be taken as to what to do when the physical memory is freeded up. For now, the decision says "leave it as is". Simply I am not sure if this is the optimal solution. If disk speed was less of an issue, then yes, this would be without doubt the best.
The finder needs a lot of fixing. Things that were right in Jaguar are not now. For example, window resizing pressing the green button doesn't crop the windows to the right size. This is REALLY annoying! \
The finder needs a lot of fixing. Things that were right in Jaguar are not now. For example, window resizing pressing the green button doesn't crop the windows to the right size. This is REALLY annoying! \
When I say active, I mean open, sorry for that. I picked up the wrong term.
No problem.
Quote:
Sure, you cannot predict what the user will want next, that's why I said a decision needs to be taken as to what to do when the physical memory is freeded up. For now, the decision says "leave it as is". Simply I am not sure if this is the optimal solution. If disk speed was less of an issue, then yes, this would be without doubt the best.
EDIT: oh, and what is this Turing o-machine?
'o' stood for 'oracle'. It's a class of computational machines where answers to specific questions can be answered by means outside the current automaton's capabilities. Questions such as "What should I do next, user?"
Turing actually described three classes of machines in his foundational work... only the a-machine is now commonly called 'the Turing machine'. His c-machine corresponds almost exactly to OO principles, while the o-machine allows for formal treatment of user-event driven systems... but of course no one realizes this, and thinks that they've invented something new, when good ol' Alan had it pegged 60 years ago.
you know, there was a day when i would chalk this up to the mac os' "discoverability," but i'm annoyed that there are things like this that, if i hadn't been lucky enough to hear about, i might never know.
all the brushed metal interfaces have a small embossed dot to signify moveability. just look up between your address bar and your google search field on safari. you can change the relative widths of those as well.
Comments
Other Unixen and Linux distros may do things differently - I've worked with ones that never purged and also weren't mapped efficiently (oy), but worked with ones that aggressively purged, sometimes to somewhat severe performance slowdowns. *shrug* Take your pick. Personally I think this hits a fairly decent balance, particularly with the current exponential resource allocation. Once you hit a certain level (depending on your current app use), it tends to stabilize pretty quickly.
Originally posted by PB
You are right, it is not a serious issue with today's disk spaces. But "forgetting" an application in the swap files when there is already free available memory, is a big performance hit. I think the system sould be, following some kind of priority hierarchy, compact some VM and drag out of the swap files some applications, once physical memory becomes available. I am not suggesting to compact everytime all VM, but some portions of it that makes sense to, so that the most frequently accessed applications for example, be immediately in main memory when system usage makes that possible.
Actually, that's precisely what happens - the apps are only swapped out as newer accessed ones are requested. If you're only using Safari, Mail, and Word, for instance, but have IE, Excel, Mozilla, PhotoShop, InDesign, Quark and god knows what else also running, then only the first three will be in active memory. As they need more active RAM, if any of the others are using it, they'll be paged out first so the most recently used apps can have priority.
Originally posted by Kickaha
Actually, that's precisely what happens - the apps are only swapped out as newer accessed ones are requested.
I am saying something different. Assume that you have some applications eating all the available memory and, say, Safari is hidden and completely paged out. When you start to quit these applications and free memory, Safari does not move to main memory until you invoke it again, despite the fact it could be the last used application just before the others occupied the main memory and forced the page out. And when you invoke a paged out Safari, it could take more than 10 seconds, depending on the memory it had before the swapping. I am simply saying that the system could silently reallocate physical memory when possible to paged out applications, at least progressively.
Originally posted by PB
I am saying something different. Assume that you have some applications eating all the available memory and, say, Safari is hidden and completely paged out. When you start to quit these applications and free memory, Safari does not move to main memory until you invoke it again, despite the fact it could be the last used application just before the others occupied the main memory and forced the page out. And when you invoke a paged out Safari, it could take more than 10 seconds, depending on the memory it had before the swapping. I am simply saying that the system could silently reallocate physical memory when possible to paged out applications, at least progressively.
Right. And how is the OS supposed to know that you're *about* to enter Safari, instead of *about* to launch Photoshop and that live RAM will be needed immediately, necessitating a swap of Safari back out to disk?
Originally posted by Kickaha
Right. And how is the OS supposed to know that you're *about* to enter Safari, instead of *about* to launch Photoshop and that live RAM will be needed immediately, necessitating a swap of Safari back out to disk?
That's why I talked about some system of priorities hierarchy. The decision could be based on application access. For example, the system could check if there are active user applications and reallocate to them the physical memory once it is available. Perhaps not all, but some part of it, just to make the transition smoother. Of course there could be other criteria.
(Alternately, if an application is performing tasks in the background, like iTunes playing music, then that RAM needs to remain live at all times.)
There's no way to predict what the user will want next - it's what Turing called an o-machine. The best you can do is not break anything worse than the current state of the memory system... which means paging things in and out as applications request processor time, giving higher priority to recently user-used applications. The user indicates past preferences based on their use patterns, and that's as good as you can get.
Originally posted by Kickaha
An active user application is one that the user is actively using - so as soon as you switch to it, it's paged into live RAM.
(Alternately, if an application is performing tasks in the background, like iTunes playing music, then that RAM needs to remain live at all times.)
When I say active, I mean open, sorry for that. I picked up the wrong term.
There's no way to predict what the user will want next - it's what Turing called an o-machine. The best you can do is not break anything worse than the current state of the memory system
Sure, you cannot predict what the user will want next, that's why I said a decision needs to be taken as to what to do when the physical memory is freeded up. For now, the decision says "leave it as is". Simply I am not sure if this is the optimal solution. If disk speed was less of an issue, then yes, this would be without doubt the best.
EDIT: oh, and what is this Turing o-machine?
Originally posted by mattyj
The finder needs a lot of fixing. Things that were right in Jaguar are not now. For example, window resizing pressing the green button doesn't crop the windows to the right size. This is REALLY annoying!
indeed!!!
Originally posted by PB
When I say active, I mean open, sorry for that. I picked up the wrong term.
No problem.
Sure, you cannot predict what the user will want next, that's why I said a decision needs to be taken as to what to do when the physical memory is freeded up. For now, the decision says "leave it as is". Simply I am not sure if this is the optimal solution. If disk speed was less of an issue, then yes, this would be without doubt the best.
EDIT: oh, and what is this Turing o-machine?
'o' stood for 'oracle'. It's a class of computational machines where answers to specific questions can be answered by means outside the current automaton's capabilities. Questions such as "What should I do next, user?"
Turing actually described three classes of machines in his foundational work... only the a-machine is now commonly called 'the Turing machine'. His c-machine corresponds almost exactly to OO principles, while the o-machine allows for formal treatment of user-event driven systems... but of course no one realizes this, and thinks that they've invented something new, when good ol' Alan had it pegged 60 years ago.
Originally posted by rok
well, son of a... i had no idea.
you know, there was a day when i would chalk this up to the mac os' "discoverability," but i'm annoyed that there are things like this that, if i hadn't been lucky enough to hear about, i might never know.
all the brushed metal interfaces have a small embossed dot to signify moveability. just look up between your address bar and your google search field on safari. you can change the relative widths of those as well.