Tracking performance drain? - Tilt, TyTN II, MDA Vario III General

I've loaded my TyTN II down with many applications and enhancements (thanks largely to this community), and while the configuration is just about perfect for what I want, I've found that performance can get unacceptably slow in some (not obviously reproducible) situations. Things like selecting a soft-key button, opening a window, ect can sometimes be very slow now.
Rather than uninstall/test/reinstall everything, I'd like to find a way to identify what processes are consuming what resources over time. RAM is fairly straightforward, but I've never seen an instance where reported program RAM had less than 40MB free, so I would assume thats not the issue.
Does anyone know of an application that can show (or better, record over time) CPU usage by all processes on the device? Can anyone reccomend other ways to "debug" intermitting performance problems?
Thanks! -james

MemMaid is one program that can show you CPU usage by processes. I don't believe it will "record" usage.

Related

Auto Memory Mangager

Not sure if you all are familiar with this app, I haven't seen anyone speak upon it on XDA yet, so just thought I'd share my experience with it.
http://www.androlib.com/android.application.com-lim-android-automemman-wBjq.aspx
IMO, this app is pretty cool. Very simple and easy to use, although it doesn't come with detailed instructions on how to use, so I felt the need to explain a little bit about it:
Tired of lags to and from Dialer/Contacts/Call Log?
Have you ever pressed the call button to dial a number/contact and nothing happens for 10 to 15 seconds then finally the call goes through and starts to ring?
Ever went back to home screen after fooling around with an app, or web surfing the browser only to find that a widget or two is missing or is not loading/refreshing properly?
Gmail not syncing daily as it usually does?
Market taking forever to load up the downloads page or lagging connection with G-talk to promptly start the download/updates you started?
Well these are the memory/background/content provider situations that need to stay snappy if nothing else does, agree?
Then this app may or may not be the answer to all of your problems.
For me it was. First and foremost, it is a FREE app, yay! (at least to my current knowledge, unless developer has changed it)
*FYI* This app does require root permissions, so if you are not rooted this will be of no use to you.
After installing, when first opening the app, super permissions should pop up, just check the always box and press allow for root access. Close the app, then re-open.
Now, there are 4 options you may choose, DEFAULT< CUSTOM< MILD< AGGRESSIVE
Default settings will be what you see on first use, those are the default Android memory settings for your G1
Custom- self explanatory, you move the bars of each memory category according to how you prefer- *Note* the amount shown is not exact memory, it is a threshold, basically a set amount not to exceed, Your phone will automatically choose how much to use according to how much it needs, but its limitations will be set by the threshold you choose. Go ahead and make your adjustments, then click the custom button, this will save these settings. So the next time you want to re-enter those settings, just hit the custom button, and it will restore.
Mild- Simply a preset application setting
Aggressive- Another preset app setting
You choose what works best for you, I would suggest playing around with different settings until you have achieved a memory usage that gives you the most improvement, *Note* Do note mistake this as a speed app, it only controls memory, so don't expect some super fast change, but if you set it up properly, and memory is being managed to the best case scenario of your usage, speed will increase, believe me.
Start with the presets, see how they work throughout the day, if you notice no difference, or worst than it already was, change it to something else.
Personally, my best experience has been with the Aggressive preset. Its been the most effective for my phone, however; this won't be the case for everyone. Aggressive basically raises the threshold for background data(widgets,home, cache, etc.) And content provider (google apps, settings, G-talk and stuff) And Empty application- this means, IMO, the amount of free memory sitting around available, for soon to come data or apps that you might open later, I.E.- multi-tasking, Call screen, new mms or sms
It also lowers the threshold of the foreground and running apps, so that they don't suck up so much memory the phone lags before it can open other things in memory. Get it? But as I stated, different people will have different preferences.
If you haven't already, try it out! If you don't like it, or don't need it...maybe results won't change things enough for you to have any use for it, you can always uninstall, and it won't harm any memory or data on your phone.
Also, regardless of threshold settings, if you open or use more memory than threshold limits, it will not break or crash you phone causing reboots or anything like that. So don't worry. The app does not prevent you from doing anything on your phone, it simply manages it according to your use.
I hope this comes in handy for someone, as it has been more than useful for me on a daily basis. You can find more information via market or the link above.
Don't take offence to this, but any "speedup" you think you are getting from it is entirely a function of the placebo effect.
There is no advantage to forcing memory to remain "free", and in fact, doing something like this will actually make the phone SLOWER than it would otherwise be.
Android has a VERY well thought out memory management system. It keeps a record of processes running and their priorities. In the event that more memory is required for a higher priority application, it will automatically select some other application to kill off in order to get that.
What this does is it ensures that you ALWAYS have the memory FULLY utilized, which means optimal performance under every circumstance.
An unfortunate trap that you are falling into is the traditional view of memory -- for example on a DESKTOP system, you don't have anything killing off unused processes, which means that every program you open will use up more memory, so the more FREE memory you have, the more new programs you can open before it starts swapping, and therefore you aim to always have a big chunk of free memory because more free memory means more applications can be open.
Android doesn't work like this!!!
What you are doing is forcing a memory utilization threshold on the thing. This has the same effect as simply reducing the total memory available on the device. That means that important applications are *MORE LIKELY TO GET KILLED OFF*.... which has exactly the OPPOSITE effect from what you seem to be after, which is to ensure that these important applications are NOT killed off.
I could be wrong, but I believe the intent of this is to allow the Android internal memory manager to be tweaked so that certain applications/processes have a higher priority and remain in memory and those that you deem as "less important" are removed first.
Here is a thread on the Hero forum about it:
http://forum.xda-developers.com/showthread.php?t=622666
Also, here is another App that does the same thing... only it will allow the settings to persist through a reboot...
http://www.androlib.com/android.application.com-rs-autokiller-wEwp.aspx
With this App, I do not notice an increase in free (meaning useless) memory... I do notice that key processes that I deem important are still running on CM 4.2.14.1... Even after running many of the ~160 apps I have, including games...
Individual results may vary... Nobody runs the same exact configuration and apps on their G1...
L8r
@Ibcoder
That means that important applications are *MORE LIKELY TO GET KILLED OFF*.... which has exactly the OPPOSITE effect from what you seem to be after, which is to ensure that these important applications are NOT killed off.
Click to expand...
Click to collapse
But it doesn't do that, the threshold simply states a measurable amount of reserve...but not a limitation. Theres a difference. Limits and thresholds are not the same, So what you are saying is not how the app works. All apps open in memory remain in memory, of course you still have to use kill switches and task managers to control unwanted memory hogs, but the app basically controls the memory in use, thats all Im saying, so if that memory is being divided properly, responsive times will increase, I know android had its own setting of doing this, hence the word *DEFAULT*...that is what the app is for, if you don't want to let Android control your memory usage, the app gives you the option to customize it
Also, here is another App that does the same thing... only it will allow the settings to persist through a reboot...
http://www.androlib.com/android.application.com-rs-autokiller-wEwp.aspx
Click to expand...
Click to collapse
Cool app! Thanks for the link, never seen this one.
But wouldn't auto kill be the same as all the other task managers and explorer apps? Its made to kill off unwanted apps, processes, and background services to free memory right? Well, I have plenty of those, and they all work quite fine.
The app I am discussing above is not a killer, its only a manager, it just gives the proper amount of memory to the category you specify to be more important memory users, thus for saving wasted memory. It doesn't specifically kill off or make memory, just manages it.
thanx though, I will try that out.
I recently saw this new app in the Market, but was unsure what advantage it will have on performance, if any. I'll pay attention to this thread to see where the discussion leads on it's usefulness (or potential lack thereof).
TeeJay3800 said:
I recently saw this new app in the Market, but was unsure what advantage it will have on performance, if any. I'll pay attention to this thread to see where the discussion leads on it's usefulness (or potential lack thereof).
Click to expand...
Click to collapse
Ok, and I don't blame ya, that's how I test everything on xda, roms,apps, hacks, you name it....but only after I review enough good responses (preferably 3)
But on the contrary, there have been times that something was reviewed poorly, but after my own experience turned out to be great! You'll see that a lot in the android market as well, great apps with two star/3 star ratings all because some asshole didn't know how to use it, LoL
Try it dude, you got nothing to lose...won't break ya phone, but if ya want to play safe nandroid your current stuff first.
Klyentel said:
Cool app! Thanks for the link, never seen this one.
But wouldn't auto kill be the same as all the other task managers and explorer apps? Its made to kill off unwanted apps, processes, and background services to free memory right? Well, I have plenty of those, and they all work quite fine.
The app I am discussing above is not a killer, its only a manager, it just gives the proper amount of memory to the category you specify to be more important memory users, thus for saving wasted memory. It doesn't specifically kill off or make memory, just manages it.
thanx though, I will try that out.
Click to expand...
Click to collapse
As far as I know, they are pretty much the same... The XDA thread I mentioned above has both the Dev of the App you posted and the Dev of the App I posted... They both created one at around the same time... One with sliders and one with fields... The only difference I think is that AutoKiller uses a service to write the settings on a reboot...
Still playing with this to see if it makes any real difference... I know if I set the values too aggressive, then the browser reloads every time I come back to it...
I know if I set the values too aggressive, then the browser reloads every time I come back to it
Click to expand...
Click to collapse
yeah that has happened to me too.
The linux kernel keeps a buffer cache of recently used files in RAM. So whenever an application wants to access something on the flash, instead of going to the flash file system, it can just get it from the file buffer cache in RAM, a significant speed increase.
If the RAM is currently being taken up by unused android apps, then that leaves less room for the buffer cache, so in theory, by killing off unused android apps more quickly, that will allow the linux kernel to allocate more space for the buffer cache and thus speeding up the system.
Am I way off here?
Dave
lbcoder said:
Don't take offence to this, but any "speedup" you think you are getting from it is entirely a function of the placebo effect.
There is no advantage to forcing memory to remain "free", and in fact, doing something like this will actually make the phone SLOWER than it would otherwise be.
Android has a VERY well thought out memory management system. It keeps a record of processes running and their priorities. In the event that more memory is required for a higher priority application, it will automatically select some other application to kill off in order to get that.
What this does is it ensures that you ALWAYS have the memory FULLY utilized, which means optimal performance under every circumstance.
An unfortunate trap that you are falling into is the traditional view of memory -- for example on a DESKTOP system, you don't have anything killing off unused processes, which means that every program you open will use up more memory, so the more FREE memory you have, the more new programs you can open before it starts swapping, and therefore you aim to always have a big chunk of free memory because more free memory means more applications can be open.
Android doesn't work like this!!!
What you are doing is forcing a memory utilization threshold on the thing. This has the same effect as simply reducing the total memory available on the device. That means that important applications are *MORE LIKELY TO GET KILLED OFF*.... which has exactly the OPPOSITE effect from what you seem to be after, which is to ensure that these important applications are NOT killed off.
Click to expand...
Click to collapse
@dwang-agreed, as I stated @lbcoder, what he is saying is that the app holds everything in memory which slows down system, but it does not do that, and he implied that I stated it limited use of apps, which is incorrect, it does not operate as a limiter, or a kill switch, only a manager. Sort of like, organizing processes by priority based upon setting of threshold tolerance. Of course killing off unwanted apps and processes have to be done manually, via kill widgets or file explorers, When I first posted about this app I assumed that concept to be in mind of the reader....sadly I was wrong. I guess everything around here has to be put in perspective as if the reader knows nothing...sort of like an "101 handbook for Dummies" type thing.
What you are suggesting is incorrect, contrary to the product description, and quite frankly, impossible.
And you can't read.
There is no "I" in lbcoder.
Klyentel said:
@Ibcoder
But it doesn't do that, the threshold simply states a measurable amount of reserve...but not a limitation. Theres a difference. Limits and thresholds are not the same, So what you are saying is not how the app works. All apps open in memory remain in memory, of course you still have to use kill switches and task managers to control unwanted memory hogs, but the app basically controls the memory in use, thats all Im saying, so if that memory is being divided properly, responsive times will increase, I know android had its own setting of doing this, hence the word *DEFAULT*...that is what the app is for, if you don't want to let Android control your memory usage, the app gives you the option to customize it
Click to expand...
Click to collapse
lbcoder said:
What you are suggesting is incorrect, contrary to the product description, and quite frankly, impossible.
And you can't read.
There is no "I" in lbcoder.
Click to expand...
Click to collapse
First and foremost buddy, I quite frankly don't give a dam how you spell your name with an "I" or an "L"
Secondly, what I am stating is not incorrect, and is possible, because I have the app, use it everyday, and does exactly what I said it does via OP. Thank you very much. If you disagree, then don't download the app. Simple as that.
or heres a better idea create one of your own. I will be more than happy to try it if you feel you can do better, but don't downsize the quality of this one, straying other users away from trying it, as it may be as useful to them as it is me. Got it?
Now get ya DREAM on...(with android that is )
and leave me alone.

Occasional Lag

Has anyone else had an occasional scrolling lag in situations? It's happened to be on the Program List where the Program icons don't load immediately. Also, most noticeably in apps such as Beezz the scrolling is laggy... Is it just me, or are others experiencing the same...?
Early bump as I'm trying to decide whether a Hard Reset is in order, maybe I installed something that didn't fare too well. Thanks guys.
80% (if not more) of the 3rd apps are NOT optimized (or rushed diplomatically saying) for Windows Phone 7 OS. HTC Hub for example wasn't as fast as the new update for it.
I can make a slight lag (more of a chopping than lag) ONLY IF I visit WPCentral page which chops on my browser than after 4-5 minutes it disappears. So I am pretty sure it's not optimised well rather than a lag because let's face it , the hardware is there and the OS is damn fast.
Have you also experienced start menu icons taking their sweet times to show up?
I've seen some choppiness on 3rd party apps. Agreed that it is a developer issue as they learn how to make apps for wp7. beezz is better than it was, but for best results, m.twitter.com is your best option.
FiyaFleye said:
Have you also experienced start menu icons taking their sweet times to show up?
Click to expand...
Click to collapse
In almost 1 month of use, never I have. To continue my initial post, that is one of the reason why I haven't installed many 3rd apps. Personally I hate having a sleek OS and then enter an app and feel like Android.. In fact besides YouTube and Adobe Reader I have only 4 other apps installed.
Same here. I can repeatedly reproduce the program list icon thing by scrolling to the bottom of the list, then hitting the home key, it'll fly to the top of the list and you'll see "white stars" before it switches to the home screen instead of the icons. Happens in random situations too, this is just a consistent occurrence..
I'd like to point out that as a developer, the choppy scrolling is a platform issue with the way Microsoft have design listbox scrolling - Silverlight defaults to virtualising the list box and recycling the listbox items - and this works fine of the PC where there is enough processing power to recycle and virtualise whilst you scroll. However, with Windows Phone 7's limited processing power, and Microsoft's very unoptimised seeming implementation, listboxes can't virtualise data fast enough. Ergo, voodoo is needed to get it working to scroll smoothly You could turn off virtualisation, but then that greatly increases RAM usage, which in Silverlight is already and lot, and then you get comparatively long load & draw & render times, and blargh. There's no one good way to do it yet for long lists - not until Microsoft go and optimise the Silverlight platform better.
I'm assuming the program list icon thing is to save RAM - you can also get it with the Home screen tiles if you have a lot of tiles on it - and saving RAM is something Windows Phone is going to like to do, seeing as the apps and the Silverlight platform use up so much RAM
i had my hd7 for almost a month now and experienced lag on it. there was also an instance that icons of the apps i installed via market place took a few seconds to load up. theres also this occasional slow response time of the unlock screen. i still have 9gb of space though

Android Memory Management - in detail for all those questions regarding task killing

This is now android works. The way I see this, this is very much similar to "pre-fetch" concept in windows 7.
I have a 6 GB RAM laptop. Base OS uses less than 1.5 GB of RAM. But like an hour or so when I see my RAM usage, its to the tune of 3-4 GB. What I have noticed is that my most frequently/recently used apps are loaded to RAM and kept there idle. Some amount of RAM is always kept free instead of using up all RAM. This way apps start faster. When I load a different memory heavy program, it pushes the existing one out and loads this.
More or less the same in android too. When u go to any task manager app n see the running apps, u'll notice that many of the apps loaded are the ones u use frequently.
These apps do NOT use any CPU. They are just loaded to memory and kept there for quick access.
When I boot up my phone I have like 190+ MB free RAM. Though left in standy mode, within an hour, I see my free RAM fall to 80-120 MB range. I never saw it go less than 80 MB. And the apps in memory are the ones I used the last time, and the ones I use all the time.
Even if u use a task killer to kill these "inactive" apps at intervals, they would be loaded again sooner or later. That's the principle of android. So by using task killers, though u feel u r freeing up memory, in fact, u r only draining ur battery. What's the use of memory if u r not using it effectively.
Don't worry abt free RAM amount. Let android manage it. Systems are intelligent enough these days.
Hope this helps. Below is more about the same in detail.
Android Memory Management
Android is a Linux based OS with 2.6.x kernel, stripped down to handle most tasks pretty well. It uses native open source C libraries that have powered Linux machines for years. All the basic OS operations like I/O, memory management, and so on, are handled by the native stripped-down Linux kernel.
How to use memory for each application
Android’s process and memory management is a little unusual. Like Java and .NET, Android uses its own run time and virtual machine to manage application memory. Unlike either of these frameworks, the Android run time also manages the process lifetimes. Android ensures application responsiveness by stopping and killing processes as necessary to free resources for higher-priority applications.
Each Android application runs in a separate process within its own Dalvik instance, relinquishing all responsibility for memory and process management to the Android run time, which stops and kills processes as necessary to manage resources.
Dalvik and the Android run time sit on top of a Linux kernel that handles low-level hardware interaction including drivers and memory management, while a set of APIs provides access to all of the under- lying services, features, and hardware.
Dalvik Virtual Machine Dalvik is a register-based virtual machine that’s been optimized to ensure that a device can run multiple instances efficiently. It relies on the Linux kernel for threading and low-level memory management.
The Dalvik Virtual Machine
One of the key elements of Android is the Dalvik virtual machine. Rather than use a traditional Java virtual machine (VM) such as Java ME (Java Mobile Edition), Android uses its own custom VM designed to ensure that multiple instances run efficiently on a single device.
The Dalvik VM uses the device’s underlying Linux kernel to handle low-level functionality including security, threading, and process and memory management.
All Android hardware and system service access is managed using Dalvik as a middle tier. By using a VM to host application execution, developers have an abstraction layer that ensures they never have to worry about a particular hardware implementation.
The Dalvik VM executes Dalvik executable files, a format optimized to ensure minimal memory foot- print. The .dex executables are created by transforming Java language compiled classes using the tools supplied within the SDK.
Understanding Application Priority and Process States
The order in which processes are killed to reclaim resources is determined by the priority of the hosted applications. An application’s priority is equal to its highest-priority component.
Where two applications have the same priority, the process that has been at a lower priority longest will be killed first. Process priority is also affected by interprocess dependencies; if an application has a dependency on a Service or Content Provider supplied by a second application, the secondary application will have at least as high a priority as the application it supports.
All Android applications will remain running and in memory until the system needs its resources for other applications.
It’s important to structure your application correctly to ensure that its priority is appropriate for the work it’s doing. If you don’t, your application could be killed while it’s in the middle of something important.
The following list details each of the application states shown in Figure (see the attached image) explaining how the state is determined by the application components comprising it:
Active Processes Active (foreground) processes are those hosting applications with components currently interacting with the user. These are the processes Android is trying to keep responsive by reclaiming resources. There are generally very few of these processes, and they will be killed only as a last resort.
Active processes include:
* Activities in an “active” state; that is, they are in the foreground and responding to user events. You will explore Activity states in greater detail later in this chapter.
* Activities, Services, or Broadcast Receivers that are currently executing an onReceive event handler.
* Services that are executing an onStart, onCreate, or onDestroy event handler.
Visible Processes Visible, but inactive processes are those hosting “visible” Activities. As the name suggests, visible Activities are visible, but they aren’t in the foreground or responding to user events. This happens when an Activity is only partially obscured (by a non-full-screen or transparent Activity). There are generally very few visible processes, and they’ll only be killed in extreme circumstances to allow active processes to continue.
Started Service Processes Processes hosting Services that have been started. Services support ongoing processing that should continue without a visible interface. Because Services don’t interact directly with the user, they receive a slightly lower priority than visible Activities. They are still considered to be foreground processes and won’t be killed unless resources are needed for active or visible processes.
Background Processes Processes hosting Activities that aren’t visible and that don’t have any Services that have been started are considered background processes. There will generally be a large number of background processes that Android will kill using a last-seen-first-killed pat- tern to obtain resources for foreground processes.
Empty Processes To improve overall system performance, Android often retains applications in memory after they have reached the end of their lifetimes. Android maintains this cache to improve the start-up time of applications when they’re re-launched. These processes are rou- tinely killed as required.
How to use memory efficiently
Android manages opened applications which are running in the background, so officially you shouldn’t care about that. This means that it closes the applications when the system needs more memory. However, most android users are not very satisfied with how it does its things because sometimes it leaves too many processes running which causes sluggishness’ in everyday performance. We can use advanced task killer/task manager and it does its job very well.
Source:
Code:
http://mobworld.wordpress.com/2010/07/05/memory-management-in-android/
NICE!!
diablo009 said:
This is now android works. The way I see this, this is very much similar to "pre-fetch" concept in windows 7.
I have a 6 GB RAM laptop. Base OS uses less than 1.5 GB of RAM. But like an hour or so when I see my RAM usage, its to the tune of 3-4 GB. What I have noticed is that my most frequently/recently used apps are loaded to RAM and kept there idle. Some amount of RAM is always kept free instead of using up all RAM. This way apps start faster. When I load a different memory heavy program, it pushes the existing one out and loads this.
More or less the same in android too. When u go to any task manager app n see the running apps, u'll notice that many of the apps loaded are the ones u use frequently.
These apps do NOT use any CPU. They are just loaded to memory and kept there for quick access.
When I boot up my phone I have like 190+ MB free RAM. Though left in standy mode, within an hour, I see my free RAM fall to 80-120 MB range. I never saw it go less than 80 MB. And the apps in memory are the ones I used the last time, and the ones I use all the time.
Even if u use a task killer to kill these "inactive" apps at intervals, they would be loaded again sooner or later. That's the principle of android. So by using task killers, though u feel u r freeing up memory, in fact, u r only draining ur battery. What's the use of memory if u r not using it effectively.
Don't worry abt free RAM amount. Let android manage it. Systems are intelligent enough these days.
Hope this helps. Below is more about the same in detail.
Android Memory Management
Android is a Linux based OS with 2.6.x kernel, stripped down to handle most tasks pretty well. It uses native open source C libraries that have powered Linux machines for years. All the basic OS operations like I/O, memory management, and so on, are handled by the native stripped-down Linux kernel.
How to use memory for each application
Android’s process and memory management is a little unusual. Like Java and .NET, Android uses its own run time and virtual machine to manage application memory. Unlike either of these frameworks, the Android run time also manages the process lifetimes. Android ensures application responsiveness by stopping and killing processes as necessary to free resources for higher-priority applications.
Each Android application runs in a separate process within its own Dalvik instance, relinquishing all responsibility for memory and process management to the Android run time, which stops and kills processes as necessary to manage resources.
Dalvik and the Android run time sit on top of a Linux kernel that handles low-level hardware interaction including drivers and memory management, while a set of APIs provides access to all of the under- lying services, features, and hardware.
Dalvik Virtual Machine Dalvik is a register-based virtual machine that’s been optimized to ensure that a device can run multiple instances efficiently. It relies on the Linux kernel for threading and low-level memory management.
The Dalvik Virtual Machine
One of the key elements of Android is the Dalvik virtual machine. Rather than use a traditional Java virtual machine (VM) such as Java ME (Java Mobile Edition), Android uses its own custom VM designed to ensure that multiple instances run efficiently on a single device.
The Dalvik VM uses the device’s underlying Linux kernel to handle low-level functionality including security, threading, and process and memory management.
All Android hardware and system service access is managed using Dalvik as a middle tier. By using a VM to host application execution, developers have an abstraction layer that ensures they never have to worry about a particular hardware implementation.
The Dalvik VM executes Dalvik executable files, a format optimized to ensure minimal memory foot- print. The .dex executables are created by transforming Java language compiled classes using the tools supplied within the SDK.
Understanding Application Priority and Process States
The order in which processes are killed to reclaim resources is determined by the priority of the hosted applications. An application’s priority is equal to its highest-priority component.
Where two applications have the same priority, the process that has been at a lower priority longest will be killed first. Process priority is also affected by interprocess dependencies; if an application has a dependency on a Service or Content Provider supplied by a second application, the secondary application will have at least as high a priority as the application it supports.
All Android applications will remain running and in memory until the system needs its resources for other applications.
It’s important to structure your application correctly to ensure that its priority is appropriate for the work it’s doing. If you don’t, your application could be killed while it’s in the middle of something important.
The following list details each of the application states shown in Figure (see the attached image) explaining how the state is determined by the application components comprising it:
Active Processes Active (foreground) processes are those hosting applications with components currently interacting with the user. These are the processes Android is trying to keep responsive by reclaiming resources. There are generally very few of these processes, and they will be killed only as a last resort.
Active processes include:
* Activities in an “active” state; that is, they are in the foreground and responding to user events. You will explore Activity states in greater detail later in this chapter.
* Activities, Services, or Broadcast Receivers that are currently executing an onReceive event handler.
* Services that are executing an onStart, onCreate, or onDestroy event handler.
Visible Processes Visible, but inactive processes are those hosting “visible” Activities. As the name suggests, visible Activities are visible, but they aren’t in the foreground or responding to user events. This happens when an Activity is only partially obscured (by a non-full-screen or transparent Activity). There are generally very few visible processes, and they’ll only be killed in extreme circumstances to allow active processes to continue.
Started Service Processes Processes hosting Services that have been started. Services support ongoing processing that should continue without a visible interface. Because Services don’t interact directly with the user, they receive a slightly lower priority than visible Activities. They are still considered to be foreground processes and won’t be killed unless resources are needed for active or visible processes.
Background Processes Processes hosting Activities that aren’t visible and that don’t have any Services that have been started are considered background processes. There will generally be a large number of background processes that Android will kill using a last-seen-first-killed pat- tern to obtain resources for foreground processes.
Empty Processes To improve overall system performance, Android often retains applications in memory after they have reached the end of their lifetimes. Android maintains this cache to improve the start-up time of applications when they’re re-launched. These processes are rou- tinely killed as required.
How to use memory efficiently
Android manages opened applications which are running in the background, so officially you shouldn’t care about that. This means that it closes the applications when the system needs more memory. However, most android users are not very satisfied with how it does its things because sometimes it leaves too many processes running which causes sluggishness’ in everyday performance. We can use advanced task killer/task manager and it does its job very well.
Source:
Code:
http://mobworld.wordpress.com/2010/07/05/memory-management-in-android/
Click to expand...
Click to collapse
Sweet!! Good Info.. But wrong Section. You should port this in the General Section to help all!
rickysa2000 said:
Sweet!! Good Info.. But wrong Section. You should port this in the General Section to help all!
Click to expand...
Click to collapse
Oh. I thought this belongs to Q&A.
Any mods here who can move this to "General" please.
This would be why when you open the built in task manager nothing or only your launcher shows up but when you open ATK multiple other programs are shown open, correct?
I found similar information while researching battery saver programs. I keep ATK when I have stubborn apps that are stuck because it is easier to get through than Android Task Manager but the auto-kill feature is always disabled. Good coverage of this info.
bclark said:
This would be why when you open the built in task manager nothing or only your launcher shows up but when you open ATK multiple other programs are shown open, correct?
Click to expand...
Click to collapse
Exactly! If all programs/processes show up, like they do in ATK, it could cause instabilities in the system when the user kills any important process knowingly/unknowingly.
trekie86 said:
I found similar information while researching battery saver programs. I keep ATK when I have stubborn apps that are stuck because it is easier to get through than Android Task Manager but the auto-kill feature is always disabled. Good coverage of this info.
Click to expand...
Click to collapse
Thanks you. Saw too many threads/posts with questions about ATK and killing tasks. So compiled this so they could all be directed to this thread.
I don't mean to go digging up old threads, but I just wanted to post my opinion here on this memory clearing ordeal.
After reading the entire thread, I am even MORE inclined to want to use ATK or something similar...
At the very bottom of the post, last paragraph, it reads -
How to use memory efficiently
Android manages opened applications which are running in the background, so officially you shouldn’t care about that. This means that it closes the applications when the system needs more memory. However, most android users are not very satisfied with how it does its things because sometimes it leaves too many processes running which causes sluggishness’ in everyday performance. We can use advanced task killer/task manager and it does its job very well.
Click to expand...
Click to collapse
Here's my take -
While there is no way to override Dalviks operations for application retention, at least while you're operating the device you can keep the memory clear by monitoring and assisting in clearing it out, manually; Which will in fact yield a performance boost for a duration of time. Based on the description of how Dalvik operates, this is true.
Exactly how long of a duration I don't know. But it is as obvious as it gets that while Dalvik memory management is indeed cool, it is far from perfect and definitely induces low memory situations that CAN in fact cause sluggish performance. That much is already known.
So, in my opinion, if you enjoy the absolute maximum performance out of your device, ATK or something similar is definitely NOT a bad idea. Though it has to be done manually and after a period of time applications are brought back into memory, clearing the memory before opening an application allows full memory access to that application and also inevitably reduces CPU load as it removes the requirement for Dalvik to "shove" other applications on idle off the memory to make room for the active applications.
Personally, I just use Task Manager. It seems much more effective at clearing the memory.
Well, there are times when my phone is on for abt a week or so without turning off or rebooting (the times when I resist flashing roms or kernels or modems) and still I hardly feel any sluggishness. And I do NOT use any task killers. I let android handle everything its way.
And there is a difference between cleaning up memory say once every couple days, and having ATK set up to free up memory every hour or two. The first one could be helpful while the second is a battery killer.
rickysa2000 said:
Sweet!! Good Info.. But wrong Section. You should port this in the General Section to help all!
Click to expand...
Click to collapse
why quote such a big post to tell this
come on
regards
strategist99 said:
why quote such a big post to tell this
come on
regards
Click to expand...
Click to collapse
^
Why necropost ?!? Come on !
(just messin with ya)
Sent from my SGH-I897 using xda premium
how about file expert's memory management options?
ok - i get what's being written at the top of this. however, i do wonder about being able to tweak things some, mainly because on file expert's memory manager there's several memory config options: gamer, multi-tasker, light user, whatnot.
i got a phone to fit in my pants pocket, so it doesn't come with tons of RAM. and it freezes quite a bit when swapping between apps. of course there could be many other reasons, but still...
file expert's options don't seem to be persistent, so it's hard to get a handle on which setting would work best. now - would there be a way of making persistent memory optimization changes? if, how?
what is an amount of free memory that would need to be there for things to be smooth? by ATK, i get south of 50Mb quite often, which seems low.
i don't really like ATK's auto-kill - don't know what it will kill, and it seems that a free memory kill-threshold would be better than one based on time.
zdoe said:
ok - i get what's being written at the top of this. however, i do wonder about being able to tweak things some, mainly because on file expert's memory manager there's several memory config options: gamer, multi-tasker, light user, whatnot.
i got a phone to fit in my pants pocket, so it doesn't come with tons of RAM. and it freezes quite a bit when swapping between apps. of course there could be many other reasons, but still...
file expert's options don't seem to be persistent, so it's hard to get a handle on which setting would work best. now - would there be a way of making persistent memory optimization changes? if, how?
what is an amount of free memory that would need to be there for things to be smooth? by ATK, i get south of 50Mb quite often, which seems low.
i don't really like ATK's auto-kill - don't know what it will kill, and it seems that a free memory kill-threshold would be better than one based on time.
Click to expand...
Click to collapse
Auto-kill is quite bad as the it kills processes that always reset.
As for your ram, you could run a Bigmem kernel. 50ram is fairly normal with regular processes and a couple extras. It all depends on what you use/run.
I would need your phone's setup to help you more towards it though.
xperia ray, snapdragon, 512Mb of RAM
don't know what bigmem kernel is or would do. i'm a noob.
the phone as above. list of installed apps courtesy titanium attached - except i've since killed ATK and now trying autokiller, which is good at least for the SD-card parameter tweaks it gives. not sure about its memory management aspects, but at least they're persistent.
list of apps
here's the list - the forum didn't take .htm
and i'm on CM7.2.
EDIT/UPDATE: unrelated to killer apps, but for those of you who came to this thread to find remedies for RAM shortage - my observation currently is that the best thing you can do to yourself is to enable swap. that, and taking out the "play store" took me from 5 crashes a day to 1 - and after half a day of multi-tasking apps i can see up to 80Mb of swap in use, with 60Mb of RAM free, and the phone still running smoothly.
How to detect if an app is in background
In the above article it is said that the memory management is completely under control of Dalvik VM and Android runtime.
Is it not possible for a device driver to intelligently check if any app in background and release memory (allocated inside driver).
onStop(): All the rendering is stopped.
Is it possible to check some app state value to see if app in background or minimized?
This is not the explanation of memory management but process management

How to make your LG Optimus 2x run like a Rocket! (Requires Root)

You don’t need to change your ROM to get the best from your 2x, just a rooted stock ROM and a couple of apps that will change things dramatically. One thing I’ve noticed on the 2x is its memory management is too lenient and gets consumed quickly by background tasks etc. In no time I was down to 40-30Mb free memory and then my phone would run like a dog resulting in a reboot as the only solution.
Installing task and app killers are not the way, as they’ll only give you a short respite before the apps and background tasks you killed relaunch.
However, there is a solution.
1)Root your phone using SuperOneClick (piece of cake, instruction already on this forum)
2)Install “AutoKiller Memory Optimizer” by AndRS Studio free from the market
Optional
3) Install “Watchdog Task Manager” by Zolmut LLC (There’s a free or Paid version) I paid!
4) Install “Root App Remover” by Best of Best Android app
AutoKiller is not a task killer/manager it reconfigures Androids inbuilt memory manager to kill or suppress memory usage by applications and tasks. I now always have about 140-170MB free RAM at all times regardless of what I’m doing (but I do close my apps with the back button rather than click home)
AutoKiller Memory Optimizer Settings
I’ve used the ‘Extreme’ settings to ensure I have around 150MB free, and this makes a huge difference in everything I do with the phone.
----------Optional things you may want to consider-----------
Watchdog
Yeah, I know this is a task killer but Watchdog is different from other task mangers as it monitors CPU usage rather than free RAM, 3D Gallery for example is a CPU hog on my 2X, so I configured it to be killed if it consumes more than 30% CPU whilst running in the background, you’d be surprised what saps your battery!
Root App Remover
Uninstall the tosh supplied on the ROM, I removed the following, AndroidBackup (I use Titanium Backup), CarHome, F-Secure_Mobile_Security, SNS (If you’re not using the built in Facebook and Twitter app).
I also use LauncherPro with Beautiful Widgets to give my phone an almost HTC Sense look and feel and uninstalled LG Home using Root App Remover afterwards.
Hope it makes a difference for you, it did for me, vote if you like
What do you think having 140-170MB RAM free at all times actually does?
Guess what? Nothing.
I disagree, my phone runs way better now, maybe due to the fact that in part it’s killing more background tasks and enforcing better garbage collection. I want a phone that when I go to it, it responds immediately, I don’t want my phone to chug along whilst a new app is launched and android then decides to kill lower priority background tasks resulting in a choppy experience. These are my findings, and I wanted to share them. As a result using this particular application I now have a phone I can enjoy, rather than being frustrated by pausing, choppiness etc.
I would welcome your reasoning to why my post is useless, or explain why my phone is now running so well? Are you saying I’m suffering a placebo effect? Remember, this app is not a task killer, it reconfigures Androids internal memory management, see here:
http://andrs.w3pla.net/autokiller/details
and
http://androidforums.com/eris-all-things-root/158846-autokiller-vs-setcpu.html#post1452069
Finally, I’m very happy with the results.
Spadb (HTC G1, HTC HD2[CM7], LG Optimus x2
We want to see some bench marks.
Thanks for sharing! My phone does become much more responsive
Sent from my LG-P990 using XDA App
I tried the app too and i can say that it works, I also did some of the advanced tweaks.
phone seems more responsive now.
Yes, me too. It's more responsive now. Also when I open app manager, the app list is a lot faster.I know it's more related to file read/write but still it's nice to finally able to browse with less waiting time.
Sent from my LG-P990 using XDA App
thx
good one and simple, thx
cann someone please post some benchmarks?
Here are some screenshots, tested with AnTuTu Benchmark
The first one is v10c stock, some apps like f-secure, carapp etc frozen, second one is with using autokiller memory with preset extreme, third one is to compare, this was while using cm7.1 rc
now we'll see if autokiller works stable ^^
edit: realized that with cm7 something seemed to be wrong with the sd-card, so don't forget to compare the single-scores
spadb said:
I disagree, my phone runs way better now, maybe due to the fact that in part it’s killing more background tasks and enforcing better garbage collection. I want a phone that when I go to it, it responds immediately, I don’t want my phone to chug along whilst a new app is launched and android then decides to kill lower priority background tasks resulting in a choppy experience. These are my findings, and I wanted to share them. As a result using this particular application I now have a phone I can enjoy, rather than being frustrated by pausing, choppiness etc.
I would welcome your reasoning to why my post is useless, or explain why my phone is now running so well? Are you saying I’m suffering a placebo effect? Remember, this app is not a task killer, it reconfigures Androids internal memory management, see here:
http://andrs.w3pla.net/autokiller/details
and
http://androidforums.com/eris-all-things-root/158846-autokiller-vs-setcpu.html#post1452069
Finally, I’m very happy with the results.
Spadb (HTC G1, HTC HD2[CM7], LG Optimus x2
Click to expand...
Click to collapse
I'm sure Rusty knows what he is talking about. Thing is, this talk about "the more free ram the better" has been repeated so many times, and at the end of the day, it seems to be more about user preference.
The default LG ROM seems to allow tasks to run in the background until it reaches around 50MB free RAM, then it starts to close tasks one by one. For multi-taskers like me, this is fine, I love how I can switch between facebook, tweetdeck, miren browser, google+, gmail, and messaging without seeing the apps reload.
For some, they'd want to open a task, close it, and move on to another without looking back. I guess that is where the 100MB of RAM is good for.
If you guys will be looking at benchmarks, I can guarantee that you will have higher scores with RAM optimizers. As benchmarks do not test multitasking, they simply check the performance of your phone at that point in time. (Which is also why some modders pump up their CPU freq to insane values before doing their bench then posting it.)
I have nothing against AKMO, and I find it very effective for Froyo builds. But I would recommend that each user try it out themselves. It's not a "1 fix for all" thing.
spadb said:
I disagree, my phone runs way better now, maybe due to the fact that in part it’s killing more background tasks and enforcing better garbage collection. I want a phone that when I go to it, it responds immediately, I don’t want my phone to chug along whilst a new app is launched and android then decides to kill lower priority background tasks resulting in a choppy experience. These are my findings, and I wanted to share them. As a result using this particular application I now have a phone I can enjoy, rather than being frustrated by pausing, choppiness etc.
I would welcome your reasoning to why my post is useless, or explain why my phone is now running so well? Are you saying I’m suffering a placebo effect? Remember, this app is not a task killer, it reconfigures Androids internal memory management, see here:
http://andrs.w3pla.net/autokiller/details
and
http://androidforums.com/eris-all-things-root/158846-autokiller-vs-setcpu.html#post1452069
Finally, I’m very happy with the results.
Spadb (HTC G1, HTC HD2[CM7], LG Optimus x2
Click to expand...
Click to collapse
I'll just say this once: Free RAM is wasted RAM. If you feel´your phone is slow try adding some swap space
kiljacken said:
I'll just say this once: Free RAM is wasted RAM. If you feel´your phone is slow try adding some swap space
Click to expand...
Click to collapse
Does O2X already support swap space in EXT? (Or are your referring to VM heap?)
Doesn't play well with Fr19 at all (2 reboots in 2 minutes). Maybe I touched some settings that I shouldn't though.
akyp said:
Doesn't play well with Fr19 at all (2 reboots in 2 minutes). Maybe I touched some settings that I shouldn't though.
Click to expand...
Click to collapse
Yeah, FR19 is one of the more stable ROMs out there. Try full wipe then reflash maybe.

[Q] Trouble with RAM management?

I got my Xperia Z1 about a month ago, and I've noticed some issues with RAM management (or possibly under-optimized third-party apps). Although I haven't had much luck in replicating the problem, I noticed it happen a few times after a Firefox internet session, or after playing a graphically intensive game like Dead Trigger 2. The app would either close by itself (not crash, as in, there were no error messages), or, after I'd close it, I'd notice my launcher (Nova Launcher Prime) go into a restart loop. A quick glance at the running apps section in settings shows 50-100 MB of free ram, and all "constantly running" apps (launcher, viber, zooper widget, k9-mail, swiftkey, tasker, etc.) stuck, for want of a better phrase, in a restarting loop (due to lack of ram I guess).
I tried running Fast Reboot (a task killer) to see if I could regain stability of the system, but it kills only a few system tasks, freeing up to a measly 50 MB of RAM, which makes me wonder (in aggravation) just where the RAM is being used. The only way the running apps would stop closing and restarting (and I need the launcher stable) is to reboot. I'm not sure if the system would stabilize after x minutes, as I only waited for a minute or two before rebooting so that I could open another app/game.
I'm not trying to start yet another debate on necessity of used RAM on Android and efficiency/futility of task managers/killers, but what I described above really seems like poor RAM management to me. I've had a few android devices in the past, and experienced various problems /errors, but never something like this.
Has anybody had a similar issue, or have any tips?
My Xperia Z1 C6903 is currently running on rooted stock 14.2.A.0.290
Although i dont get force closes, but ive noticed most of the ram is taken by the phone itself, right now for me it says i have 1.1gb in use, when i close everything i have just a slight (barely even noticeable) increase in free ram, when i click on cached processes and close all one by one ive seen it increases the ram use instead of decreasing it?
But, do you use apps like setcpu? You can keep it on performance and keep the min slider to the lowest and the max slider to max, it runs stable and gives you performance when you need it, and no performance when you dont need it.
If all fails, try deleting system apps that you barely even use or need... Becareful what you delete tho!
mobzw995 said:
Although i dont get force closes, but ive noticed most of the ram is taken by the phone itself, right now for me it says i have 1.1gb in use, when i close everything i have just a slight (barely even noticeable) increase in free ram, when i click on cached processes and close all one by one ive seen it increases the ram use instead of decreasing it?
But, do you use apps like setcpu? You can keep it on performance and keep the min slider to the lowest and the max slider to max, it runs stable and gives you performance when you need it, and no performance when you dont need it.
If all fails, try deleting system apps that you barely even use or need... Becareful what you delete tho!
Click to expand...
Click to collapse
Thanks for the reply. No, I've used apps like that in the past, but haven't installed anything similar on the Z1, because I noticed in BetterBatteryStats that the CPU speed goes down often when the screen is off, and up when, I suppose, it's required, such as in intensive games...
What apps do you use? For example facebook, YouTube, browser etc
Ive checked again on my cached apps and to my surprise, AOSP browser takes up 208mb!
Facebook takes up 48mb, and youtube takes up 22mb.
It just depends on the apps you have installed, some use the ram even while the phone is asleep.
Ive stopped those and a huge difference was made on freeing up my ram!
What i dont get is tho why sony advertises 2.2ghz quadcore if the phone itself takes most of it?
Just delete the apps you dont need from "all apps".

Categories

Resources