Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Hmm... Only one of those articles provides any sort of evidence to support the claim, and it's anecdotal. I would love to see some scientific evidence. Then perhaps we can put this controversy to sleep! :)


Why did you only quote the links? Was my opinion on it disregarded?
 
Why did you only quote the links? Was my opinion on it disregarded?
That was the only part of your post that I wanted to respond to. My apologies if your opinion felt disregarded. It wasn't. Seems we agree that there's more opinion in this claim than there is proof.
 
Last edited:
Straight from Apple. Let's put this thread to rest once and for all.


https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/TheiOSEnvironment/TheiOSEnvironment.html

The Virtual Memory System
To manage program memory, iOS uses essentially the same virtual memory system found in Mac OS X. In iOS, each program still has its own virtual address space, but unlike Mac OS X, the amount of usable virtual memory is constrained by the amount of physical memory available. This is because iOS does not support paging to disk when memory gets full. Instead, the virtual memory system simply releases read-only memory pages, such as code pages, when it needs more space. Such pages can always be loaded back into memory later if they are needed again.

If memory continues to be constrained, the system may send low-memory notifications to any running apps, asking them to free up additional memory. All apps should respond to this notification and do their part to help relieve the memory pressure. For information on how to handle such notifications in your app, see “Observe Low-Memory Warnings.”
 
Last edited by a moderator:
I owned all those older devices, from the 3G onwards, and - respectfully - I disagree that your referencing "fact".

The fact is that all versions of IOS were designed to manage their own background processes without user intervention, and that's certainly how I used them without ever having to worry about responsiveness.

iOS doesn't handle RAM to the extend that it's optimized for performance, closing apps does in fact help. iOS also doesn't handle all of these tasks as good as it should, referring to that developer's guide page wasn't a smart thing to do on my part I guess, as you seem to think that the conditions for that method are flawless while they are definitely not.

iOS is designed to keep the system running, and that's good, it's almost impossible to read the specific conditions of every app. Just don't assume that the automatically closing of apps preserves enough ram for you to keep your iPhone running smoothly. This has to be done manually, you don't have to be a developer to know that physical memory isn't always released upon closing applications.
 
Straight from Apple. Let's put this thread to rest once and for all.


https://developer.apple.com/library...uide/TheiOSEnvironment/TheiOSEnvironment.html

The Virtual Memory System
To manage program memory, iOS uses essentially the same virtual memory system found in Mac OS X. In iOS, each program still has its own virtual address space, but unlike Mac OS X, the amount of usable virtual memory is constrained by the amount of physical memory available. This is because iOS does not support paging to disk when memory gets full. Instead, the virtual memory system simply releases read-only memory pages, such as code pages, when it needs more space. Such pages can always be loaded back into memory later if they are needed again.

If memory continues to be constrained, the system may send low-memory notifications to any running apps, asking them to free up additional memory. All apps should respond to this notification and do their part to help relieve the memory pressure. For information on how to handle such notifications in your app, see “Observe Low-Memory Warnings.”

Certain applications have to be given an order of importance to avoid them from interfering with the users main functions (dialer, etc). There is even a notion from this same source with tools for an application with RAM leaks. So is it not possible that any app has the potential to be the source of contention with RAM? Wouldn't it then be beneficial to self terminate the application?

https://developer.apple.com/library...ual/ManagingMemory/Articles/FindingLeaks.html

Edit: I guess my reasoning would be that if we truly never needed a "Task killer/Process manager", then why would iOS 7 include it? This OS is generally kept minimalistic to avoid any user created catastrophes. I can't see them adding a tool like this unless it's a useful addition to the function of the device.
 
Just don't assume that the automatically closing of apps preserves enough ram for you to keep your iPhone running smoothly.

Except that my iPhone does run perfectly smoothly, without any app-closing intervention on my part, so why on earth wouldn't I assume that?

This has to be done manually, you don't have to be a developer to know that physical memory isn't always released upon closing applications.


Sorry but this is nonsense. Think how many IOS devices there are out there in the world, and ponder just how many of those users even know how to access the app switcher, let alone follow this erroneous advice to religiously close down everything they see there. Are all the other phones and iPads out there running like treacle, gasping for resources, as their helpless OS chokes on running apps and maxed out memory? Is that what IOS is generally known for out there, slowness and freezing? I think not. I think most people who have never double clicked the home button in their lives would tell you that IOS runs pretty quick, and if what you're suggesting was even a little bit true, that just wouldn't be possible.

I for one can't remember the last time I restarted my phone, and my recent apps list goes on forever (seriously you'd hate it). Somehow my phone is super responsive and running perfectly. There is one and only one explanation for that; IOS is managing my apps and my memory just fine, thanks.
 
Certain applications have to be given an order of importance to avoid them from interfering with the users main functions (dialer, etc). There is even a notion from this same source with tools for an application with RAM leaks. So is it not possible that any app has the potential to be the source of contention with RAM? Wouldn't it then be beneficial to self terminate the application?

https://developer.apple.com/library...ual/ManagingMemory/Articles/FindingLeaks.html

Edit: I guess my reasoning would be that if we truly never needed a "Task killer/Process manager", then why would iOS 7 include it? This OS is generally kept minimalistic to avoid any user created catastrophes. I can't see them adding a tool like this unless it's a useful addition to the function of the device.
As far as ability to close applications, it's there primarily for cases when an application gets stuck or is experiencing some issue, so that it could be closed (and then restarted) in an attempt to deal with that. It's also there so that some applications that are in fact allowed to run in the background can also be terminated by the user when they desire to, rather than perhaps waiting for the system to do it on its own at a later point when its necessary (rather when desired by the user). And as far as the application switcher itself in general, it's there so that users can switch between tasks in a faster/simpler manner.

----------

iOS doesn't handle RAM to the extend that it's optimized for performance, closing apps does in fact help. iOS also doesn't handle all of these tasks as good as it should, referring to that developer's guide page wasn't a smart thing to do on my part I guess, as you seem to think that the conditions for that method are flawless while they are definitely not.

iOS is designed to keep the system running, and that's good, it's almost impossible to read the specific conditions of every app. Just don't assume that the automatically closing of apps preserves enough ram for you to keep your iPhone running smoothly. This has to be done manually, you don't have to be a developer to know that physical memory isn't always released upon closing applications.
But even that doesn't mean that the user has to close apps and the system doesn't actually do it at all (in general, when needed), as has been implied by some in earlier posts.
 
Certain applications have to be given an order of importance to avoid them from interfering with the users main functions (dialer, etc). There is even a notion from this same source with tools for an application with RAM leaks. So is it not possible that any app has the potential to be the source of contention with RAM? Wouldn't it then be beneficial to self terminate the application?

https://developer.apple.com/library...ual/ManagingMemory/Articles/FindingLeaks.html

Edit: I guess my reasoning would be that if we truly never needed a "Task killer/Process manager", then why would iOS 7 include it? This OS is generally kept minimalistic to avoid any user created catastrophes. I can't see them adding a tool like this unless it's a useful addition to the function of the device.

The "close app" function of the switcher comes in handy when an app hangs or does not load properly. You can merely close it and launch it again. Without this UI the only way to resolve this issue would be to restart the phone.
 
As far as ability to close applications, it's there primarily for cases when an application gets stuck or is experiencing some issue, so that it could be closed (and then restarted) in an attempt to deal with that. It's also there so that some applications that are in fact allowed to run in the background can also be terminated by the user when they desire to, rather than perhaps waiting for the system to do it on its own at a later point when its necessary (rather when desired by the user). And as far as the application switcher itself in general, it's there so that users can switch between tasks in a faster/simpler manner.

Could it not be "Getting stuck or experiencing issues" due to the RAM being low? I'm not trying to argue I just can't see all these lines of code as being perfect. There may always be exceptions to the rule right?
 
Edit: I guess my reasoning would be that if we truly never needed a "Task killer/Process manager", then why would iOS 7 include it? This OS is generally kept minimalistic to avoid any user created catastrophes. I can't see them adding a tool like this unless it's a useful addition to the function of the device.


It's there first and foremost as a convenient task switcher - apple themselves often refer to it as a "recent apps" list and this is more correct, as it's designed to show you every app you've used included those long since suspended or shut down by the system (easily spotted since when you select them the apps clearly reload and start afresh).

The secondary function is as a means to shut down apps that may be malfunctioning in some way. Just because an app has thrown a wobbly and frozen/gone awry due to bug, doesn't mean that IOS knows to shut it down without your intervention.

If the multitasking interface was put there by apple to help people manage memory and maintain their OS, why isn't there a big "close all" button?
 
There is so much FUD in this thread it's unreal, from people who don't understand how iOS's memory management works. It's not as simple as "This app is open, this app is closed". If you want to understand it, read the damn API.

As a general rule of thumb:

- iOS will close apps in order of priority (I don't know how this is decided, and I don't think it's disclosed) when it is in need of resources. Be it CPU power, or RAM.

- Background tasks get higher priority than sleeping apps. A sleeping app will be killed rather than a background task. Background tasks are pretty much resource guaranteed*.

- iOS doesn't kill apps to increase battery life. iOS kills apps if/when it needs resources. If there is a background app using 3% CPU, of course it's going to have an effect on battery life (albeit small).

At the end of the day - the battery increase by closing apps is negligible, and would probably be outweighed by the UI animation rendering that's needed during the closing procedure.

* As guaranteed as can be.
 
Could it not be "Getting stuck or experiencing issues" due to the RAM being low? I'm not trying to argue I just can't see all these lines of code as being perfect. There may always be exceptions to the rule right?

No. iOS would have freed up the amount of RAM the app is requesting before it launched.
 
Could it not be "Getting stuck or experiencing issues" due to the RAM being low? I'm not trying to argue I just can't see all these lines of code as being perfect. There may always be exceptions to the rule right?
Sure, that's a possibility, and perhaps does happen, but it would be if the application is perhaps not coded properly in some way or some other issues are happening with the OS or other applications perhaps.

But the point is that there type of cases aren't the common/normal experience, so going with the concept of just saying that the OS doesn't manage the apps and doesn't do anything and it's always up to the user to close them (as has been proposed by in some posts) isn't really all that reasonable just based on these kinds of minority/exception cases for which the application switcher is actually there to allow for closing of the apps.
 
Except that my iPhone does run perfectly smoothly, without any app-closing intervention on my part, so why on earth wouldn't I assume that?




Sorry but this is nonsense. Think how many IOS devices there are out there in the world, and ponder just how many of those users even know how to access the app switcher, let alone follow this erroneous advice to religiously close down everything they see there. Are all the other phones and iPads out there running like treacle, gasping for resources, as their helpless OS chokes on running apps and maxed out memory? Is that what IOS is generally known for out there, slowness and freezing? I think not. I think most people who have never double clicked the home button in their lives would tell you that IOS runs pretty quick, and if what you're suggesting was even a little bit true, that just wouldn't be possible.

I for one can't remember the last time I restarted my phone, and my recent apps list goes on forever (seriously you'd hate it). Somehow my phone is super responsive and running perfectly. There is one and only one explanation for that; IOS is managing my apps and my memory just fine, thanks.

I am sorry, you seem to assume that iOS can perfectly allocate and predict wether or not an app has released enough memory to keep the system running smoothly. This is ludacris. Not even Large OS's have mastered this way of handling RAM, Mac OS X and Windows 7 all can easily come across these problems and they are way more advanced than iOS. Spare us the it's not happening to me, so it's not happening at all analogy. It doesn't apply for people who use apps of lower quality and who are actually in a situation where they require doing this. Also iPhone 4 and 4S have only 512 MB or ram of which iOS7 already uses half. With apps available in the app store that can easily take up way more than the tiny bit you have left, the method applied by apple is WAY to simplistic to handle those kinds of situations. If you're running an iPhone 5S you're not experiecing this problem obviously. But for those who have a lower grade phone this is a completely normal problem to have. If you know what you're doing however this shouldn't ever be a problem for you.
 
Actually, it isn't common sense. It's a documented feature which does exactly the opposite to what you think it does.

Your computer doesn't automatically close backgrounded applications when it needs resources. It leaves stuff open and pages (slower) to disk. Your phone, on the other hand, keeps things open as long as possible. If the resources used by an app are required, the app is killed.

Time for an example. Say you currently have 10MB free RAM out of 1GB total. Application x is open in the background and is using 800MB of RAM, and 90% CPU. You now open Application y, which needs 500MB of RAM, and 50% CPU. On a computer, this would cause CPU waiting, and paging to disk, hence why it slows down. On iOS, the phone realises that it needs more resources, and will automatically kill application x, so that the resources are available for application y. Hence there's no slowdown or performance hit.

Please read the API before spreading more crap in this thread about stuff you clearly do not understand.
 
Last edited by a moderator:
Actually, it isn't common sense. It's a documented feature which does exactly the opposite to what you think it does.

Your computer doesn't automatically close backgrounded applications when it needs resources. It leaves stuff open and pages (slower) to disk. Your phone, on the other hand, keeps things open as long as possible. If the resources used by an app are required, the app is killed.

Time for an example. Say you currently have 10MB free RAM out of 1GB total. Application x is open in the background and is using 800MB of RAM, and 90% CPU. You now open Application y, which needs 500MB of RAM, and 50% CPU. On a computer, this would cause CPU waiting, and paging to disk, hence why it slows down. On iOS, the phone realises that it needs more resources, and will automatically kill application x, so that the resources are available for application y. Hence there's no slowdown or performance hit.

Please read the API before spreading more crap in this thread about stuff you clearly do not understand.

Imagin iOS having to shutdown over 40 applications because they are all taking up a tiny bit of ram that is required for an app needing a larger amount of ram.

iOS in this case will continuously keep closing apps throughout your usage as it's needed, do you think reassigning shared memory and releasing virtual memory doesn't take up processing or battery life, especially when it's 40 applications done over time? Seriously people iOS isn't as sophisticated as you think. The system is only as smart as Apple has programmed it to be. Note that apple always tries keeping things simple, even when it comes to code.
 
I am sorry, you seem to assume that iOS can perfectly allocate and predict wether or not an app has released enough memory to keep the system running smoothly. This is ludacris. Not even Large OS's have mastered this way of handling RAM, Mac OS X and Windows 7 all can easily come across these problems and they are way more advanced than iOS. Spare us the it's not happening to me, so it's not happening at all analogy. It doesn't apply for people who use apps of lower quality and who are actually in a situation where they require doing this. Also iPhone 4 and 4S have only 512 MB or ram of which iOS7 already uses half. With apps available in the app store that can easily take up way more than the tiny bit you have left, the method applied by apple is WAY to simplistic to handle those kinds of situations. If you're running an iPhone 5S you're not experiecing this problem obviously. But for those who have a lower grade phone this is a completely normal problem to have. If you know what you're doing however this shouldn't ever be a problem for you.


As others have said, the desktop
OS's you cite work in a completely different way, by paging memory to disk and allowing everything to run at once, at the cost of performance. IOS simply does not do that, and your assumptions about how it does work are way off the mark.

My current phone is an iPhone 5, there's a 4S in the family too, neither suffer in the slightest from not having their recent apps list pointlessly cleared. As much as you want to dismiss the "it's not happening to me" argument, the fact is that if your assertions about IOS were correct, we would *have* to be shutting down apps to stop our devices becoming unusable, and clearly we don't. If you genuinely do, then there's something else going on with a specific app you're using - not the OS.
 
iOS in this case will continuously keep closing apps throughout your usage as it's needed, do you think reassigning shared memory and releasing virtual memory doesn't take up processing or battery life, especially when it's 40 applications done over time?

But how does iOS doing this take more battery than a user doing it manually?
 
As others have said, the desktop
OS's you cite work in a completely different way, by paging memory to disk and allowing everything to run at once, at the cost of performance. IOS simply does not do that, and your assumptions about how it does work are way off the mark.

My current phone is an iPhone 5, there's a 4S in the family too, neither suffer in the slightest from not having their recent apps list pointlessly cleared. As much as you want to dismiss the "it's not happening to me" argument, the fact is that if your assertions about IOS were correct, we would *have* to be shutting down apps to stop our devices becoming unusable, and clearly we don't. If you genuinely do, then there's something else going on with a specific app you're using - not the OS.

I have mentioned several times that this isn't a problem if you are completely aware of the apps you're downloading and the quality of apps you're using.

But the developers skill in memory management has such a huge role in this all that it would be stupid to assume that because you're not experiencing the problem it's not happening to others.

BECAUSE iOS cannot pagefile it's exactly part of the reason that things can get more bad way more easily. The way ram is used it exactly like any other phone or system, an application written in C++ wil utilize ram exactly the way it does on iOS like it does on Android, as it would on Windows and Mac OS X. Given the parameters of ram available, and how much the system allows your app to have.

The difference with Major operating systems is that they get enough RAM thrown at them for the system to ever run out.
 
Why has this thread become so convoluted....Okay, so the native apps that run on iOS 7 may not have any of this trouble. There are still plenty of other applications out there! There is no operating system that is flawless. They'll all have the potential to have issues such as RAM leaks, battery drain, etc.

Can't we all just agree to disagree? We'll always have people who view things differently. While there are facts to support both sides, I really just think it's a little of both.
 
Imagin iOS having to shutdown over 40 applications because they are all taking up a tiny bit of ram that is required for an app needing a larger amount of ram.

iOS in this case will continuously keep closing apps throughout your usage as it's needed, do you think reassigning shared memory and releasing virtual memory doesn't take up processing or battery life, especially when it's 40 applications done over time? Seriously people iOS isn't as sophisticated as you think. The system is only as smart as Apple has programmed it to be. Note that apple always tries keeping things simple, even when it comes to code.

How exactly does it use battery life? It doesn't have to do anything special, just quits the running process and deal with the virtual memory. We're talking microseconds of a very small amount of CPU power. In fact, you tapping the screen to launch the app probably uses hundreds of times more power than killing a process and marking memory as free takes.

And lol, if you think Apple keeps code simple, then you have obviously never seen the code behind any apple products ;).
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.