Related
Hi,
After i upgraded to WM 6.5 Stock, my ram consumption has gone up from 45% with WM 6.1 to around 65-70%.
What are your thoughts about using a tool to free ram - does it help?
And what is the best tool to free ram?
I don't think it'll help. The official rom is badly bloated.
My build uses all of the official Packages on top of the latest WM6.5.1 build 23506 and memory usage is about 34%. That's running the official Manila 2.1
So I have no idea what they're doing.
VM 6.5 and memory usage
Well another approach to the memory usage is, how to get it down?
Is there anyt tips & tricks to get it down?
How much memory do you need in spar befor is a problem and have influence on the performance of the phone?
Its true that 6.5 uses more ram, and even more is used if you have moved over to manila 2.5. But as long as you have ram free it should not affect the performance of your device.
clean ram programs do reduce ram usage that has increased over a few days but you will not get it below the amount that is used just after a soft reset.
Sometimes having things "cached" in the ram will improve device response if those items are needed frequently, so not all ram usuage is actually bad.
Hey guys,
found it on another board (pocketpc.ch)
HKLM\SOFTWARE\HTC\ResProxy\ShareMemSize set Value to 100001
i dit it and its amazing, after a softreset it starts with 42% of memoryusage and til now no problems with any apps, so i think its a good tweek
thanks to the poster on pocketpc.ch
rol13 said:
Hey guys,
found it on another board (pocketpc.ch)
HKLM\SOFTWARE\HTC\ResProxy\ShareMemSize set Value to 100001
i dit it and its amazing, after a softreset it starts with 42% of memoryusage and til now no problems with any apps, so i think its a good tweek
thanks to the poster on pocketpc.ch
Click to expand...
Click to collapse
That was f...... amazing!!!
Memory use is down to 48% and the small delay there sometimes was in the interface is totaly gone. Startup of apps is also faster then before and everything seems faster.
So for now this registry change has done wonders for me. Only time will tell if there is a down side to it ;-)
Thanks rol13.
rol13 said:
Hey guys,
found it on another board (pocketpc.ch)
HKLM\SOFTWARE\HTC\ResProxy\ShareMemSize set Value to 100001
i dit it and its amazing, after a softreset it starts with 42% of memoryusage and til now no problems with any apps, so i think its a good tweek
thanks to the poster on pocketpc.ch
Click to expand...
Click to collapse
Hi,
it's not obvious(no A to F letters to guess) but you might have said, it's an hexadecimal value
regards
I noticed the same problem after updating tot 6.5.
I'm not very experienced with tweaking my phone. How can I use the mentioned tweek? What do I have to do and are ther risks involved?
there is always a risk when tweaking your phone, however, since many of us here seem to be having to negative results from this tweak, then you can say it's safe. search xda for regedit, download and install on your device, then use that program to tweak.
What Registry Base?
I dont understand, when I set the value to 100001, the radio button base has to be selected 'Hex' or 'Dec'?
Thanks for your help!
fofo13 said:
I dont understand, when I set the value to 100001, the radio button base has to be selected 'Hex' or 'Dec'?
Thanks for your help!
Click to expand...
Click to collapse
select hex
jetbro said:
select hex
Click to expand...
Click to collapse
Thank you, done, works just fine.
Thanks works great, usage at 42% now
if your using htc sense try getting the 'no push internet' cab file, as that will stop the push internet service on your phones and save you around 10%
for thoses that are unsure, push internet is where htc sense, will auto load web pages for you every hour or so, this makes the first page load instantly, and thats about it, so not much to lose out on
I would like to add a small note about this tweak before we all start thinking this is giving us something for nothing.
this reg tweak will prevent TD2 from pre-caching files for the following HTC applications:
AudioBooster, Calculator, ContactCard, CUIHandler, FMRadio, HTCAlbum, QuickGPS, Recorder, StreamingPlayer and YouTube.
They will now be dynamically cached, and then dumped from ram as they are used.
If you frequently using these apps it will be slower to launch when you 1st use them as they will need to be moved to memory before being executed (you can prove this yourself buy timing them before and after using the reg edit)
If you look at many diamond/TD2/HD tweaks the performance ones that make most difference are for file system cache, font cache, glyphy cache ect...
This works by allowing greater amounts of memory to be used by these caches, and more cached data gives better performance at the cost of less available memory.
so long as you always have enough free memory for the apps you want to run these performance tweaks are good. but if you go too far and run out of memory your app will crash or phone will just start to crawl
So using your memory is not a problem, and for many people it is better to have common apps and system files cached in memory ready to use instead of being able to see 50% free memory doing nothing (remember you have paid for this memory, make it work for you)
But if shortage of free memory is a problem for you then certainly this tweak will free up ram for your applications that need it.
as a side note another good way of freeing up alot of ram is to dissable push internet using a cab found on these forums. this obviosly comes at the cost of losing push internet, but if you dont use it whats the loss
thanks for the great info rumpleforeskin. one thing i would like to mention, after applying the tweak, my internet speed (using 3g) dropped significantly, and it was almost impossible to get a gps signal, as soon as i restored my registry back to the way it was before the tweak, everything went back to normal, i got my 3g speed back, and gps was almost instant. something to think about before using this tweak! or maybe it was just me
rol13 said:
Hey guys,
found it on another board (pocketpc.ch)
HKLM\SOFTWARE\HTC\ResProxy\ShareMemSize set Value to 100001
i dit it and its amazing, after a softreset it starts with 42% of memoryusage and til now no problems with any apps, so i think its a good tweek
thanks to the poster on pocketpc.ch
Click to expand...
Click to collapse
Brilliant! Down to 52% after a soft reset, thanks.
In my case Topaz from Spain, Official Rom upgrade from HTC, after change the value & soft reset 41% Ram occuped (before the change 48%), without problems with programs,
great tweak.
this tweak sets the share memory to 1 mb while the default is 15 mb.
yes you will have some more ram free but this will make Topaz work much more because now it has to read write to the ram all the time.
so whats good with this tweak
You get extra 5-10 mb ram free (thats what you think) but those extra ram are not free really because they will be used all the time to read what should already be in the ram.
this also causes the cpu to work more causing more drain on the battery.
so you will loose more then you gain
gullum said:
this tweak sets the share memory to 1 mb while the default is 15 mb.
yes you will have some more ram free but this will make Topaz work much more because now it has to read write to the ram all the time.
so whats good with this tweak
You get extra 5-10 mb ram free (thats what you think) but those extra ram are not free really because they will be used all the time to read what should already be in the ram.
this also causes the cpu to work more causing more drain on the battery.
so you will loose more then you gain
Click to expand...
Click to collapse
what you write is true, i made a post a little futher back describing the pupose of this cache file, and all cache files.
The original poster of this tweak done a good job of finding a way to reduce ram usage which will be very helpfull to the few people who need to use that extra ram.
but i worry that many people will use this tweak just to lower their ram usage not understanding that memory cache is there to boost performance.
Originally, a2sd was developed to allow installation of many apps on G1 as G1 has limited memory. The MT3G has more internal memory so it does not need a2sd.
My question is if we can enable a2sd on a MT3G and than use the additional memory for the system. This can improve performance so much ....
Is this possible? I'm a dev, but not on this kind of platform . I know shell scripting, Unix, C so I can help if needed, but don't know how to approach this thing.
Thx.
mr.tenuki said:
Originally, a2sd was developed to allow installation of many apps on G1 as G1 has limited memory. The MT3G has more internal memory so it does not need a2sd.
My question is if we can enable a2sd on a MT3G and than use the additional memory for the system. This can improve performance so much ....
Is this possible? I'm a dev, but not on this kind of platform . I know shell scripting, Unix, C so I can help if needed, but don't know how to approach this thing.
Thx.
Click to expand...
Click to collapse
It depends. Now if you have a 32a board, this is pointless. Unless you have 300+apps installed it will not hurt performance.
I sugest App killer to kill off unused apps that never shut down, it helps so much/
Me really dont need Apsd for mytouch, especially the new 32a boards. Running from the sd card slows everythign down. To improve your performance..
1. Get CPU overclosk from market, set lowest to 386, high to 528 screen on, screen off 256/256.
2. Download swapper, set to size of yoru swap partition etc...
3. Get any free app killer ( ifully suggest Anvanced task killer) and every hour or so, go in and ignore what u use all the time, and kill everything else.
Also, get Cachemate from market or Clean up. this clears out all the garbage.
Doing this, on a good day, my battery lasts 17 hours with data going. and My Live wallpapers never lag
Hi,
Thanks - I already have all that set up. I was thinking on a MOD that will allow improvement of performance in a different way.
My Idea is to actually use the memory that becomes available under /data as we move the app to SD to be used by /system partition. Maybe we can also do a "reverse RAM hack" and increase the 3D RAM.
Again, as I'm not very familiar with the Linux system I don't know how exactly this should be done, or if it can be done at all.
Thanks for the reply though
storage memory in the phone is different then addressable ram.. therefore what your saying is not possible...if you really want something like this set up a swap partition on your sd card.
also task killers are not needed for android... its been well documented here and on other forums as android handles processes much differently than your standard windows box (so no need to have the mindset that background apps are slowing down your system). android itself does an excellent job of managing memory and kills tasks itself when more mem is needed. i used to run ATK myself, and found after removing it my phone actually ran better than killing processes all the time.
your likely just having a placebo affect if you think it speeds up your phone.. however killing process can increase battery life.. albeit only slightly...try it yourself and you will see what im talking about..
regarding task killers, just google it and you will see what im saying...
edit: most roms have cpu scaling in them, if you want an app i find set cpu to be the best, followed by overclock widget...
edit2: forgot to mention autostarts . a great program to edit which programs start up upon boot .. if your still worried about having things running in the background...
I was trying to get a swapfile on /Data (being a lot faster than sdcard, probably), but It didn't work :/
Otherwise known as "Why Newer Android Phones Don't Need Task Killers".
This is straight ASCII cut-and-paste from my Evernote page, so any spelling and grammar mistakes are mine. I have looked over various apps such as AutoKiller, Advanced Task Killer, various threads on memory management in Android, even a few bits of Android source code. I know about compcache, minfree, swap, kernel, and more.
This is aimed at an Android owner who knows the basics, but is trying to optimize their device. They may have experimented with ROMs and kernels based on recommendations, but don't know about serious internal tweaking.
I realize what I wrote will probably have the techies screaming "no, no, that's not quite right"... That's why I want a tech review. If I had committed any serious misunderstandings, please let me know. If you have more references, please list them. Would prefer a bit more detailed comments than "sucks" or "great".
-------
Memory Management in Android: the myths and the facts
Introduction
The Android OS, now at V2.3 "Gingerbread", is widely misunderstood, due to lack of hardware specifications and the open nature of system, has created a wide set of myths regarding how the memory is managed, and how one can best achieve good performance on an Android device.
This article will attempt to explain just how Android OS manages memory, dispel some myths regarding Android memory, and show you some techniques that will help you keep your system running smoothly while achieving good performance.
However, first, here's some technical stuff about Android memory and applications. Trust me, all this is necessary to understand how the whole thing works.
Android OS Memory Management Basics
Android OS, as of V2.2 (and 2.3) have two general types of memory: internal storage (sometimes known as application stroage), and SD card (which may be flash memory that works like SD card, but not physical SD card, such as in the Nexus S)
All apps (in the form of APKs) are loaded into internal storage. Each program can also request additional space as "data" and/or "cache".
All apps (in the form of APKs) are loaded into "app storage" part of the "ROM" (actually flash RAM). Part of the ROM is the boot ROM which loads the system. The other half of the ROM is "app storage". For example, in Motorola Droid, 256MB is RAM, and 512MB is ROM. Out of 512MB ROM, 256MB is Android System itself (actually a bit less), and the rest is "app storage", to max of 256MB.
With Android 2.2 and "Move2SD", a portion of the APK can be moved onto the "SD card", but main portion must remain in internal app storage. The size of the main portion that stays would depend on the app. Some apps cannot be moved or will not function if moved. "Protected" apps cannot be moved. Apps that primarily consist of a service and a widget may not work if moved. add Services or widgets needed for startup should not be moved.
For example, If you have a 256MB system (shows as 262MB due to 1024 vs. 1000 KB size difference) and have 130MB of apps and data/cache loaded, then that leaves about 130MB for the system to actually RUN programs. That sounds like a lot, but in reality that is not enough, since the system itself takes 50-80MB, and services will take up another 30-50MB, leaving almost nothing.
addedIn a 256MB RAM phone such as my Moto Droid, AutoKiller shows...
acore : 4.55MB (system)
dialer: 8.95MB (system)
system: 20.38MB (system)
autokiller:5.68MB
messaging: 3.41MB (system)
Swiftkey: 6.59MB
JuiceDefender 4.14MB
Calendar Storage 4.1 MB (system)
acore: 7.7MB (different pid) (system)
smart taskbar 3.81 MB
seePU 3.44MB
Screebl 4.38MB
SetCPU: 3.83MB
ATK Froyo 3.01MB
gapps: 7.79MB (system)
and 2 more at 4.66MB and 3.56MB
That adds up to... 99.88, or 100 MB.
But that is supposed to leave 156MB, right? Wrong. The system itself takes about 100 MB by itself, in addition to loaded programs, according to this thread about T-Mobile G1 (which has 192 MB of RAM, and has about 96000 KB after booting)
UPDATE: I found an article that explains how to read "MEMINFO". You can get MEMINFO app, or if you have SetCPU the overclocking widget it shows MEMINFO as well. Mine says roughly:
MemTotal: 231740 KB, or 226MB
MemFree: 3376
Buffers 272
Cache: 34960
SwapCache: 0
So the system (before OS kernel) uses about 30MB leaving about 226 MB
Cache itself used another 35 MB. , leaving about 189 MB
Minus 100 MB of auto-loaded apps, and you get... 89 MB.
If you run any programs that need more than that, programs and services will be killed to make room.
(see Redhat's explanation on what meminfo is supposed to mean)
SIDEBAR: native vs. Dalvik
There are two types of Android programs... "Native" programs, and VM programs.
Native programs are written for the specific CPU in the machine. While this gives better performance, this is much harder to achieve, so most people write program for the VM, or "Virtual Machine".
A "virtual machine" is basically a CPU emulator. You feed it a program, and it will run this program, as if it's a real CPU. The good thing about using a VM is it doesn't matter what the actual physical CPU the device uses. You write the program once, and never have to worry about converting it to other CPUs.
Android's VM is called Dalvik, and it is similar to Java's virtual machine. (In fact, Sun/Oracle sued Google for violating Java copyrights on JVM)
Different pieces of a single app
Most apps have either just an activity, or activity along with a service.
"Activity" is basically the user interface that takes your inputs and displays something back. Foreground app would be an activity.
"Service" is a background program that updates something. Common services includes input, widget updates, mail notification, and so on. Other services include Bluetooth, network updates, and so on.
(Actually there are two more types: broadcast receiver, and content provider, but those are not that pertinent to our discussion)
An app can use a widget, and the widget can use a lot of memory, usually several MB at once. You can see the different services and how much memory they are taking under Settings / Applications / Manage Services
How Services Use Memory
As explained above, Android OS have to run programs from within the limited space available, which, on older phones, isn't much. From within that much memory, it needs system work space to load all the services (you probably have a dozen loaded, taking up at least 30 MB) System itself uses about 60-70 MB (acore, phone, gapps, messaging, etc.) That's 100 MB used. That doesn't leave much memory for anything else, if you have 100 MB of apps loaded. (256-100-100=56) 100MB for system itself, about 100MB used for apps and services, and you got almost nothing left.
If you look at the services screen, at the bottom, there's a bar: red, yellow, and green. There is a number in the red section and some in green. Your services adds up to the number in the green section. The yellow portion is some memory that can be freed. The red stuff are system stuff and can't be moved.
What Happens When System Runs Out of Memory
When the system needs to load programs, but don't see enough available, it will start killing programs and services (to the system, they are all considered "process") from memory based on the following priority:
Empty App: the app is in standby, not being used, but is still in memory. These can be killed without any effect.
Content Provider: process that provides content to the foreground, such as "contacts content provider", "calendar content provider", and so on. Various "storage" are also content providers. Those can be restarted when needed.
Hidden Application: apps not visible, but still running in the background. These are not exactly running, so killing them should have no serious consequences.
Secondary server: services that stay in background and apps such as Launcher (or other home replacements). Most services go here, like music player, clock updater, background sync, and so on, that's not built into the OS. If these are killed there may be some problems, such as the playback is interrupted, background sync stops, widget no longer updates, and so on.
Visible app: the app is running and visible, but due to multi-tasking or such is not currently "on top". Any program with a display in the notification area is considered "visible". Android OS will not kill these programs unless absolutely necessary, but it can happen.
Foreground app: you see this app on screen, currently running, but also includes the system itself and "phone". These are never killed. In any case, system and phone have much higher priority than any app to make sure those are never killed.
Each category above has a certain number associated with it, sometimes known as a "minfree" value (in either "pages" or megabytes, depending on the app). When Android OS free memory drops below the minfree value for that category, apps in that category are killed. The killing starts Empty App group as that has the highest number. if that's not enough, it then starts killing apps in the Content Provider Group, and it keeps going until it has finally freed up enough memory to load the app and all related processes (such as services).
NOTE: Having a constant "notification" in the notification area makes the program "visible app" instead of "hidden app", thus making it less likely to be killed by the system to make room for other apps.
A lot of problems with Android device occur when the system tries to make room by killing "secondary server" processes that are needed. Playback of audio (music or podcast) stopped, download stopped, location services stopped... etc. This especially happens on phones with little RAM. First Android phone, T-Mobile G1 / HTC Magic, has 192MB of RAM. Moto Droid have 256MB of RAM. Second generation of Android phones, like HTC Wildfire, got 384MB of RAM. Recent phones, like Droid X, Galaxy S, and so on got 512MB.
NOTE: Some apps, like web browser, can exit but still save the URL you were browsing. So when the process reloads, it is almost as if it was never unloaded. Unfortunately not all apps can do that.
So what is the solution?
There are two approaches to the problem: make more memory available, or pre-empt the auto-kill by killing apps yourself.
Making More Memory Available
There are four ways to make more memory available short of exchanging the phone for a more powerful one.
1) Free up more app storage / internal storage
Either uninstall the apps altogether, or move2sd as much as possible. Keep in mind move2SD may not work for all apps, and amount that can be freed varies greatly. Uninstall an app is best, as it both frees up the space itself takes, and if it loads a service, that service is loaded either, saving even more space.
While it's true that the app that wasn't run won't take up any space, every widget is served by a service, and a small app can load a HUGE service by calling existing libraries and declare a large buffer for downloads. And just because you don't actually use the app doesn't mean the system will not load it. The only way to make sure the app will NOT be loaded is to uninstall it (or if you have Titanium Backup premium, you can "freeze" the app)
2) VMHeap
VMHeap adjusts the the amount of memory that can be dedicated to the Dalvik Virtual Machine (VM). In general this should not be touched, and does not really make more memory available. It is available only for experimentation purposes.
This usually is NOT tweakable without mod ROM such as Cyanogen Mod. And benefits are unproven so far. Don't change anything yet.
3) CompCache
CompCache, or "compressed cache", is handled by the Linux kernel. It takes a portion of your memory, and use it as a cache space, but compressed. By using on-the-fly compression it is able to make your memory appear to be a bit larger than it actually is. However, the result is slower performance.
This is usually NOT tweakble without mod ROM such as Cyanogen Mod. The kernel also must support this feature, and not all do. This also slows your phone.
4) Swap file or partition
Linux kernel allows the OS to use the SD card as swap space by either creating a swap file or a swap partition. This adds a lot of read/write action to your SD card and may substantially decrease its usable life. However, it is a reliable way to "add" a lot of memory to your system.
Root access is required to swap the kernel, and the kernel must support this feature as well. Not all do. This really slows your phone. Beware.
Pre-emptive Killing of Tasks
The other way to avoid auto-kill is to kill the processes yourself via an app, so the auto-kill is not triggered. This is why apps like Advanced Task Killer and all the other "task killers" are created.
Basically, the task killers automate the task of killing apps, so it will free up memory thus auto-kill is NOT triggered. And because Task Killers have ignore lists, you can add your specific app to be ignored, and hopefully it will still run.
The best known one is ATK (advanced task killer) by ReChild, but there are plenty of others on the market. They usually have tweakable settings, like killing apps every time the screen is turned off (eeks!) or just at timed intervals (every 30 minutes), and so on.
On a phone with 512MB (or more) of memory, there should be no need for task killers, as the phone should not run out of memory. On phones with 256MB or less of memory, ATK may be necessary to keep the phone "free" for other apps.
Recommended Actions
If you have one of the older phones with little memory (256MB or less), load only the bare minimum of apps you need. uninstall the rest. You need to minimize your memory usage as much as possible to leave as much space for the apps. Keep 100-150MB available for the system is best. After system and services loaded, there should be at least 50MB left to load other programs and such.
You can use archivers like Titanium Backup or AppMonster to archive the apps to SDcard, and only reactivate them when you need them. Or you can delete them altogether, only redownload them from the Market when you need them. This will even work for purchased apps.
You can also purchase Titanium Backup which allow you to "freeze" apps, which makes leaves them in memory but NOT loaded. You can also uninstall built-in apps that you don't use, such as Amazon MP3, saving even more space.
If that is not enough. you can try using CompCache and/or Swap. However, those are not exactly recommended, and thus are only methods of last resort if you can't kill enough apps to matter. Try 18% compcache or even 26% compcache. If that doesn't help, try 128MB swap, or even 256MB swap if that still doesn't help.
For phones with 384MB or more RAM, you should not have to be so stingy, but no need to overload either. With extra 128MB -384MB you can load extra 50-100MB of apps and a few more services. The idea is still to keep 100-200MB available (depending on the phone). You do not need task killers and all that.
I was looking on the explanation for OOM priorities, and there it is. Thanks. I'm wondering why there are no replies to this thread. Oh wait, it's a question.
thanks for the most awaiting tutorial abt RAM.n yes i was wonderng y this thread hasnt got applause...
I have my Nexus S for over two weeks now, and I'm incredibly happy with it. Theming is a lot of fun, and you can do very cool stuff even without root and custom roms!
However, there is one (strange) thing I've noticed. It's about the RAM.
For your information: I use Go Launcher which has a tab in the App Drawer with running applications, and a button to close all (you can exclude certain apps). When I boot up my phone, I have 170-180 MB free RAM. The following programs (and widgets) are running in the background (I have excluded them from the close all list): Go SMS Pro (widget, notifications), WhatsApp (notifications), Lookout, Extended Controls (widget), Wiget Locker (I made it look like the MIUI lockscreen) and Clockr (widget).
There are two more apps that are on constantly, and those are the Miren Browser and PlayerPro. I don't know why Miren Browser keeps turning itself on. When I check how much MB it uses, it says 0,00 dB... As for PlayerPro, I use a widget called Phantom Music Control, a widget that hides itself when no music is being played. I also use it on my lockscreen. This widget controls PlayerPro, so that is probably why PlayerPro has to be running all the time (so that it can start up quickly when needed).
There are some Google apps that turn themselves on, like Gmail and Places, and they actually use RAM according to Go Launcher. I don't want them to be running, and synchronization is turned off with Gmail. When I want to know if I have mail, I open Gmail. It doesn't have to be running all the time. I've never used Places, and I never will use it, so I don't know why that has to be running all the time.
Every once in a while I hit Close All (with Go Launcher). However, I've noticed that over time my free memory keeps lowering. When I boot up my phone it is around 175 MB, but at the end of the day the free memory is 100 MB, 70 MB or even 50 MB, and yes, even after I've hit the 'Close All' button.
I know I don't use my phone very efficient, with programs like Go SMS, Widget Locker and that Music Control widget, and I will flash a custom rom later. My RAM memory will probably increase then (I've read something about Supercurio's kernel including a boost RAM management). It just bothers me that I don't have control over what programs are running (Gmail and Places), and that my free memory decreases over time. I haven't noticed any slow downs, I'm just worried. Or shouldn't I?
I don't know about the rest, but you shouldn't be concerned about free memory.
Android is designed in a way that all programs keep running (sleeping actually) in the background even when you don't use them at the moment. They are automatically killed when the system needs memory for something else. Any program that is sent to the background (e.g. by pressing back or home) can be killed by the system at any time and is (should be) ready for it.
Basically, the less free memory you have, the better. That means that many of the apps you use are running and you can return to them without delay.
There are some articles floating around the web about the architecture of android and process/application life cycle. They explain that better then me, and in more detail.
cgi said:
I don't know about the rest, but you shouldn't be concerned about free memory.
Android is designed in a way that all programs keep running (sleeping actually) in the background even when you don't use them at the moment. They are automatically killed when the system needs memory for something else. Any program that is sent to the background (e.g. by pressing back or home) can be killed by the system at any time and is (should be) ready for it.
Basically, the less free memory you have, the better. That means that many of the apps you use are running and you can return to them without delay.
There are some articles floating around the web about the architecture of android and process/application life cycle. They explain that better then me, and in more detail.
Click to expand...
Click to collapse
First of all, thanks!
So I don't have to be afraid of any slow down? And what about Gmail and Places turning themselves on every time, even if I don't use them?
And why does the free memory decrease over time, but increases again when I turn off and boot up my phone?
Androyed said:
So I don't have to be afraid of any slow down? And what about Gmail and Places turning themselves on every time, even if I don't use them?
Click to expand...
Click to collapse
More like the opposite: your RAM is being put to good use.
When your PC get's low on RAM it will start swapping and trashing around. Your smartphone has no swap and is optimized for it. If it get's low on RAM, it will just kill some stuff in the background. All this happens without you noticing anything (if the app is programmed correctly).
I don't know about Gmail and Places. Most likely they are running because they registered broadcast receivers or something.
Androyed said:
And why does the free memory decrease over time, but increases again when I turn off and boot up my phone?
Click to expand...
Click to collapse
Every app is running in its own dalvik virtual machine process. Since creating a new VM process is expensive (in terms of processing time), the VM processes are reused to some degree. One app is unloaded, the new one is loaded.
There is more stuff going on behind the scenes, of course. There are likely some spare VMs sleeping in the background waiting for an app to use them.
However, the heap (dynamically allocated memory of a process) of a VM can only grow and never shrink (don't ask me why). So after a few apps or so a VM process is restarted, too.
To come back to your question: When your device boots up, only the processes needed for boot are running. That will be the launcher, some widgets and so on. So basically, this is the moment with the most free RAM. However, this is also when your device is slowest, because every new app you launch has first to be loaded into memory and executed.
While you use your device, many of the apps you used will be kept around in the background, so when you start them again, they will reappear instantly, because the whole "create vm process --> load app from storage --> execute and initialize app" chain has already happened.
"Free memory is wasted memory."
When you open an app, the system loads it into ram. When you close it, the system should not bother to remove it from ram because there is a good chance you will use that app again and having it pre-loaded makes it open significantly faster.
Just because ram is "used" doesn't mean it can't be re-allocated for something more important.
That being said, it is entirely possible that some of your apps have memory leaks. Does it get worse after two days, or three days?
d-h said:
"Free memory is wasted memory."
When you open an app, the system loads it into ram. When you close it, the system should not bother to remove it from ram because there is a good chance you will use that app again and having it pre-loaded makes it open significantly faster.
Just because ram is "used" doesn't mean it can't be re-allocated for something more important.
That being said, it is entirely possible that some of your apps have memory leaks. Does it get worse after two days, or three days?
Click to expand...
Click to collapse
I turn my phone off every evening, so I don't know. It's not a problem by any means, I'm just curious.
I've left my RAM alone today, and I didn't noticed any slow down. It was on 110 MB free RAM when I left it alone, and when it was at 35 MB RAM, I decided to hit the close all button (there was no slow down btw). Guess what? My RAM went back up to 140 MB! Not as much as when I boot my phone up, but it's still strange: when I hit close all when the free RAM is very low, I get more free RAM then when I hit close all when my free RAM is around 100 MB (I only get 5 or 10 MB free RAM extra then).
Thanks by the way, good first post!
Hello everyone
i have noticed something strange about the RAM available, if I go into settings-applications-services running: ram, 211 MB used 80MB free.
If you instead use Android system info I see: 37 MB free RAM
Why this? I have 2.3.4 stock
sorry my bad engish
try terminating cached programs. also, remove unnecessary apps. dont use task killers/managers etc. they are unnecessary. linux is smarter than us. dont use security services unless you frequently visit suspect sites and dl apps w/out research. see which programs are consuming ram and search for solutions. last resort, hard reset. if it persists or low ram issues arise when stock, time for a new one. good luck.
The nexus S has 345MB for the OS and apps, rest is used by the hardware (mostly by the GPU), you will never have access to it.
Your situation is perfectly fine, the biggest memory hog is the browser. I recommend auto memory manager (free on market) and set the empty application line to 80mb.
The services are killed automaticly by android, no need for task managers, but the limit is set to 80mb instead of 24mb. You will still run into memory leaks eventually, but not really at 30mb left.
Thanks to all
I do not use task killer, using linux for 4 years , i try Auto Memory Manager. see if the situation improves.