Related
Hi,
I have noticed that my Nexus' performance starts to drop after some hours on: going from one home screen to the other becomes quite choppy, and so do the animations of opening an application.
Have you guys noticed that too, or is it just me?
It was like this for me until I bought Advanced Task Manager. I have it auto end applications that I don't need to run all the time. It runs much better now.
The issue is RAM. The kernel that shipped with the Nexus One doesn't support the full 512MB of RAM. However, CyanogenMod 5.0-beta4 does and the difference in speed is amazing. With 26 apps running I have 167MB free atm.
But like stickerbob said, you should have Advanced Task Manager at the least.
Deathwish238 said:
The issue is RAM. The kernel that shipped with the Nexus One doesn't support the full 512MB of RAM. However, CyanogenMod 5.0-beta4 does and the difference in speed is amazing. With 26 apps running I have 167MB free atm.
Click to expand...
Click to collapse
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
frandavid100 said:
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
Click to expand...
Click to collapse
Yep but some people just don't get that, ah well...
efeltee said:
Yep but some people just don't get that, ah well...
Click to expand...
Click to collapse
Well, that doesn't really explain the performance drops. Does the phone run out of RAM, or not? It seems to be snappy again after a reboot, so there must be something.
frandavid100 said:
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
Click to expand...
Click to collapse
That is what I have read, but it did not work for me. I downloaded the free version of advanced task man to troubleshoot the problem and found that most of my apps were still running in the background even when my ram was down to 10-20mb. That is about when the phone would start acting up on me. When I ended the tasks the phone would act normal again. So I just broke down and bought the app for $.99. If you do this make sure you exclude some system apps, if you don't your phone could freeze while it is trying to restart them.
10-20mb free is normal operation. This is how the OS is designed to operate, linux and even windows7 now also operate in this fashion (show very little 'free' memory). there is no performance problem with low free memory, purely a misconception on modern memory managment. Whats going on is that you have a buggy application, which is why 'killing' apps looks to be resolving your issue. You're only resolving the symptom, not the problem.
I never kill apps and have had weeks of uptime without any slow down. This gets rehashed over and over again by people claiming task killers help performance. The reality is they do nothing for performance, only nice to have around for that great once and a while an app runs away from you, or in troubleshooting if you have a poorly written app. It should not be anyones habit to do a kill all on a regular basis, if it were the OS would do this automatically.
btw, compcache has been known to cause this slowdown over time issue, it has since been removed from most of the popular custom baked rom's.
frandavid100 said:
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
Click to expand...
Click to collapse
Yes it does...
bofslime said:
10-20mb free is normal operation. This is how the OS is designed to operate, linux and even windows7 now also operate in this fashion (show very little 'free' memory). there is no performance problem with low free memory, purely a misconception on modern memory managment. Whats going on is that you have a buggy application, which is why 'killing' apps looks to be resolving your issue. You're only resolving the symptom, not the problem.
I never kill apps and have had weeks of uptime without any slow down. This gets rehashed over and over again by people claiming task killers help performance. The reality is they do nothing for performance, only nice to have around for that great once and a while an app runs away from you, or in troubleshooting if you have a poorly written app. It should not be anyones habit to do a kill all on a regular basis, if it were the OS would do this automatically.
btw, compcache has been known to cause this slowdown over time issue, it has since been removed from most of the popular custom baked rom's.
Click to expand...
Click to collapse
Well then there must be many buggy applications. I had to rely on Advanced Task Manager to keep my G1 running acceptably fast. The N1 slows down without its full RAM available so I needed to use Advanced Task Manager then too.
If the RAM is not the issue, why does having the extra 200 MB available make the phone run much smoother with 20+ apps running?
frandavid100 said:
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
Click to expand...
Click to collapse
well technically no, it reallocates what is being used and frees up memory for programs currently running but non the less the OS manages itself
personally i close apps that i do not have going with the task manager. i seem to notice a performance difference if i do it manually, it takes 2-3 extra taps for peace of mind rather than relying on the OS to figure it out for me...
Deathwish238 said:
The issue is RAM. The kernel that shipped with the Nexus One doesn't support the full 512MB of RAM. However, CyanogenMod 5.0-beta4 does and the difference in speed is amazing. With 26 apps running I have 167MB free atm.
But like stickerbob said, you should have Advanced Task Manager at the least.
Click to expand...
Click to collapse
The speed benefits of CM's ROM isn't due to the HIGHMEM supporting kernel, but rather other tweeks he's done with his build. Extra ram is nice, but there is certainly no limitation with the 213 or so userspace memory that is available now. Android itself does not even use this memory, it has its own reserved memory space, userspace memory is only for applications to be loaded in. And there is speed for keeping as much of your applications loaded in memory as possible.
swetland said:
Roughly 220MB is available to userspace in the shipping build (ERD79).
Quite a lot of memory is dedicated to the radio firmware (41MB), dsp firmware (32MB), display surfaces (32MB), gpu (3MB), camera (8MB), a/v buffers (41MB), and dsp buffers. Much of this needs to be set aside for these specific tasks due to hardware requirements of very large physically contiguous buffers which can be difficult or impossible to obtain after boot once the physical memory space gets fragmented.
The big limitation though is that the Linux kernel needs to do a 1:1 physical:virtual map of general purpose memory used by the kernel and userspace (which excludes the special purpose stuff described above). This eats into the available kernel virtual address space, which is also needed for cross process shared memory used by the binder, etc. Run out of virtual memory and things get unhappy.
In 2.6.32, HIGHMEM support for ARM will allow us to avoid this requirement for a 1:1 mapping which will allow us to increase memory available to userspace without running the system out of virtual memory adddress space.
Click to expand...
Click to collapse
The speed difference I'm talking about is what I experienced when running CM beta3 and CM beta3 w/ highmem. The difference was huge. I assumed the change was mainly attributed to the double RAM available.
Even now with the full RAM available, things run faster when I end the other apps running. It's not necessary, but the difference is there.
It would be nice to be able to pinpoint which apps caused slow downs.
The best way I've seen this put I found in a thread where someone wanted to disable apps from auto-starting entirely. I saved it, because I though it was very elegant way to explain androids mem management.
equid0x said:
I just wanted to chime in here about the whole apps on startup thing....
Android has the concept of services which are programs that typically have a frontend piece, like a GUI for IM that you would normally use, that only runs when you are using it, and a background piece, the service, which is constantly running to keep you connected to your IM servers. This will account for some portion of the things you see running on startup, depending on how many apps you have installed, and whether or not they were written to run as a service.
There are also some, usually older, android programs that existed before "services" were really used.. that basically use triggers to keep reloading themselves. These programs are less efficient, and probably should be re-written to use the official service method of operation, caveat emptor.
Android also makes several modifications to the stock process handling that comes with any Linux kernel, which is already radically different from what most would be used to seeing on Windows as it is. Android attempts to keep commonly used applications running(loaded into memory), but in a sleeping state (using no cpu), so that they may be quickly resumed on request. Android also contains some agressive modifications to the behavior of the OOM(out of memory) task killer in Linux, that seem to cause it to keep applications running until nearly all memory is consumed, killing apps it deems unnecessary only when absolutely necessary. However, Android also supports a methodology of saving the running state of a program, so that if it is killed due to an OOM condition, it may be restarted with relevant data restored, to give the appearance of never having been killed at all.
This functionality is not all to alien to Linux as a platform in general, though Android has many modifications which tend to favor aggressive app management in memory, and less so filesystem cache. This was likely a design choice made to suit the low-speed/low memory platforms Android targets.
Click to expand...
Click to collapse
Good read.
So then given that...only services running should slow down the phone and not the background apps running.
However, this doesn't really answer the OP's question. If it's not a memory issue...what's causing his slowdowns?
Could be too many widgets on the home screen, I don't run that many but its possible that while in an app for a while, and switching back to home the OS may have to kill a whole bunch of apps to allow it to reload all the widgets on the home screen.
I tested this, and loaded the crap out of my home screens with widgets, and then launched a game. When I exited the game there was a good 500ms - 800ms delay in my homescreens from displaying anything other than the background. However, after it loaded, scrolling between screens looks smooth. The new kernel with highmem support can help this, but I would suspect some crazy widget filled homescreen with a 3rd party live wallpaper (star's configured with too many stars) and all of that combined could be an issue even still. Apple combats this by allowing only one app at a time, they know people will go overboard if allowed.
Well, that doesn't really explain the performance drops. Does the phone run out of RAM, or not? It seems to be snappy again after a reboot, so there must be something.
Click to expand...
Click to collapse
There's probably no easy answer to this question. There could be IO contention, a runaway process, high CPU usage, a memory leak, shoddy code in some app, etc etc... One would really have to take a look at the whole state of the system at the time the problem is happening to be able to ascertain what is causing the slowdown.
The phenomenon is in no way unique to Android. I'm sure nearly everyone is familiar with the common complaint "my computer is running slow". The reasons that can happen on a common PC are the very same reasons that can be happening here, and unfortunately there are many of those reasons. While in many cases, throwing memory at the issue may appear to solve the problem temporarily, it often is not a permanent fix.
The amount of userspace memory available really amounts to 1 thing and 1 thing only -> the total number of running processes that we can keep totally in memory at any given time. On stock android, slowdown due to an OOM condition should be minimal, since stock android doesn't swap. Discounting any other bottlenecks, there is a practical limit to the number of programs once would be able to run in the memory space that is available. Realistically speaking, android programs tend to be fairly small, so you'd really have to be running a lot of them to exhaust this space. It is far more likely one or 2 poorly written programs are hogging huge amounts of memory (and probably other resources), which is causing constant killing and restarting of other apps you are trying to run concurrently. You end up with contention on the slow flash, resulting in poor performance.
You can't even really compare the Nexus One to the G1 in this regard, because the G1 truly is terribly deprived of memory. Though, the argument in both cases could really be made that you are attempting to run the hardware beyond its design specifications...
Its been my experience that the culprit is usually one or 2 specific programs. Sometimes the best, although inconvenient, way to figure out which programs these are, is to keep watch of your usage habits, and if you suspect something is the problem, uninstall it, and see if the issue persists. Its time consuming but there really isn't any better way to figure it out without using all kinds of tools that android doesn't really provide convenient access to. There are a few apps on the market that help with this but I am not sure what they are called offhand.
Programs that were identified as sources of slowdown for me have been:
Weatherbug
The Weather Channel
Calorie Counter
Locale
SMS Popup
10000
USA Today
National Geographic Wallpapers
CNN News Widget
Streamfurious
Nav4All
Waze
Just about every app with Admob Ads
And this is really just what I can think off offhand... there are more...
equid0x said:
There's probably no easy answer to this question. There could be IO contention, a runaway process, high CPU usage, a memory leak, shoddy code in some app, etc etc... One would really have to take a look at the whole state of the system at the time the problem is happening to be able to ascertain what is causing the slowdown.
The phenomenon is in no way unique to Android. I'm sure nearly everyone is familiar with the common complaint "my computer is running slow". The reasons that can happen on a common PC are the very same reasons that can be happening here, and unfortunately there are many of those reasons. While in many cases, throwing memory at the issue may appear to solve the problem temporarily, it often is not a permanent fix.
The amount of userspace memory available really amounts to 1 thing and 1 thing only -> the total number of running processes that we can keep totally in memory at any given time. On stock android, slowdown due to an OOM condition should be minimal, since stock android doesn't swap. Discounting any other bottlenecks, there is a practical limit to the number of programs once would be able to run in the memory space that is available. Realistically speaking, android programs tend to be fairly small, so you'd really have to be running a lot of them to exhaust this space. It is far more likely one or 2 poorly written programs are hogging huge amounts of memory (and probably other resources), which is causing constant killing and restarting of other apps you are trying to run concurrently. You end up with contention on the slow flash, resulting in poor performance.
You can't even really compare the Nexus One to the G1 in this regard, because the G1 truly is terribly deprived of memory. Though, the argument in both cases could really be made that you are attempting to run the hardware beyond its design specifications...
Its been my experience that the culprit is usually one or 2 specific programs. Sometimes the best, although inconvenient, way to figure out which programs these are, is to keep watch of your usage habits, and if you suspect something is the problem, uninstall it, and see if the issue persists. Its time consuming but there really isn't any better way to figure it out without using all kinds of tools that android doesn't really provide convenient access to. There are a few apps on the market that help with this but I am not sure what they are called offhand.
Programs that were identified as sources of slowdown for me have been:
Weatherbug
The Weather Channel
Calorie Counter
Locale
SMS Popup
10000
USA Today
National Geographic Wallpapers
CNN News Widget
Streamfurious
Nav4All
Waze
Just about every app with Admob Ads
And this is really just what I can think off offhand... there are more...
Click to expand...
Click to collapse
I'm banking on it being an issue with an app that the OP has installed as well...not the phone or Android. I have only a handful of tried and true apps, and haven't experienced a slowdown even after 150 hours without a reboot.
OP... start uninstalling apps a couple at a time and wait several hours in between to narrow down the problem app.
I can't speak for the OP, but when I was having that problem I had 5 widgets running on my home screen. The Google Search, Sports Tap, Power Control, Calendar, and The Small Weather Channel. Does this seem like too much? I hope not.
stickerbob said:
I can't speak for the OP, but when I was having that problem I had 5 widgets running on my home screen. The Google Search, Sports Tap, Power Control, Calendar, and The Small Weather Channel. Does this seem like too much? I hope not.
Click to expand...
Click to collapse
It's not just widgets that you should be thinking about... any app you've installed can throw something off.
stickerbob said:
I can't speak for the OP, but when I was having that problem I had 5 widgets running on my home screen. The Google Search, Sports Tap, Power Control, Calendar, and The Small Weather Channel. Does this seem like too much? I hope not.
Click to expand...
Click to collapse
I removed the weather & news widget and the phone seems much faster now. I'll keep it like that for a day, see if it stays fast.
Since no one replied to this message in the official CM 5.0 thread. I have decided to create a new thread and hope to find a solution to this problem.
My alarm clock would stop working randomly ever since I flashed to CM 5.0, from Beta 4 to 5..2, the problem persists. If i set an alarm that is about one hour from now, it would go off. But the real alarm I need which is supposed to go off at 8 am in the morning never goes off. Anyone had similar problems? I read Cyanogen's warning about the alarm clock problem. But seems he's just trying to remind you to reset your alarm after flashing to CM. Unluckily, I've reset my alarm numerous times and it never goes off in the morning.
Anyone can give me a hand? Thanks in advance! Overall, CM is a great ROM which gives me the option to use open vpn, which is vital for me since I'm living in China behind the GFW.
Are you by chance using any taskillers?
I do use a task-killer program. But I always keep the clock app on while i'm sleeping to try to make sure the alarm goes off on time. But it never does in the morning.
Don't use task killers on the N1, there really is no need.
cyanogen said:
Don't use task killers on the N1, there really is no need.
Click to expand...
Click to collapse
I wouldn't say that's accurate... The phone does slow down noticeably when you have 20-30+ things open
Sometimes a lot of them are running as well (using TasKiller, a lot of Yellow, including Camera, Gmail etc even when not in use and no emails being downloaded). This probably affects battery life as well.
Paul22000 said:
I wouldn't say that's accurate... The phone does slow down noticeably when you have 20-30+ things open
Sometimes a lot of them are running as well (using TasKiller, a lot of Yellow, including Camera, Gmail etc even when not in use and no emails being downloaded). This probably affects battery life as well.
Click to expand...
Click to collapse
Do you have any evidence to back this up? Yes this was a problem on older devices because many things would be fighting over the tiny amount of RAM.
You'll see lots of processes running but that's just the way Android works. Since it doesn't really benefit from simple caching like a normal linux system would, it just keeps everything running and kills unused stuff when memory is low. Most of the things you see running are either paused and using no CPU, or are services that would be periodically launched anyway.
http://developer.android.com/guide/topics/fundamentals.html#lcycles
Keeping these processes alive should actually be saving you battery rather than using it. It's more expensive to launch and restore the state of an application or service after being killed than it is to simply resume one that's been paused.
cyanogen said:
Do you have any evidence to back this up? Yes this was a problem on older devices because many things would be fighting over the tiny amount of RAM.
You'll see lots of processes running but that's just the way Android works. Since it doesn't really benefit from simple caching like a normal linux system would, it just keeps everything running and kills unused stuff when memory is low. Most of the things you see running are either paused and using no CPU, or are services that would be periodically launched anyway.
http://developer.android.com/guide/topics/fundamentals.html#lcycles
Click to expand...
Click to collapse
Yes. The phone gets slow when TasKiller shows 30 things in it. I click close all, and it's faster. Do you know my personal experiences more than I do?
Paul22000 said:
Yes. The phone gets slow when TasKiller shows 30 things in it. I click close all, and it's faster. Do you know my personal experiences more than I do?
Click to expand...
Click to collapse
I think there is likely one or two specific misbehaving applications that are giving you trouble, rather than the way the system works as a whole, thats all.
I think what Cyanogen is saying is that android does not handle running processes the way other os's do They have a lifecycle that is non-obvious to someone just looking at a process list. If you insist on killing tasks outside of the activity/service lifecycle they you _will_ get service failures (like the alarm clock) its up to you what you value more.
I have not installed any sort of task manager (outside what's in astro but I don't use it) and never see any noticeable slow down.
Anyway - back on topic.
Yes I have the same issue, never had it before.
Since flashine 5.0.2 my alarm doesn't work in the morning.
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
cyanogen said:
Do you have any evidence to back this up? Yes this was a problem on older devices because many things would be fighting over the tiny amount of RAM.
You'll see lots of processes running but that's just the way Android works. Since it doesn't really benefit from simple caching like a normal linux system would, it just keeps everything running and kills unused stuff when memory is low. Most of the things you see running are either paused and using no CPU, or are services that would be periodically launched anyway.
http://developer.android.com/guide/topics/fundamentals.html#lcycles
Keeping these processes alive should actually be saving you battery rather than using it. It's more expensive to launch and restore the state of an application or service after being killed than it is to simply resume one that's been paused.
Click to expand...
Click to collapse
I would have to agree with Cyanogen on this one. When I first got my N1, I looked towards task killers to help alleviate slowdown, but in the end, I think it's just the placebo effect in a way; you did something to try to solve the problem, and so therefore you perceive a difference.
In other words, task killers aren't needed on this beast of a phone. As for battery life (if that's an issue), look into SetCpu.
Thanks for the reply Cyanogen. I think not using task-killer, or at least not killing the clock app got my alarm working this morning. But I use task-killer not for the purpose of saving ram, but for using less data. Some programs such as facebook or a twitter client would try to connect to the internet every once in a while. I'm on a low data limit plan in China. So I don't want those programs to eat up all my data. When I'm on wifi at home, I don't worry about that. Thanks again.
Same problem. Don't use taskkillers, flashed last CM last night and didn't wake up on time this morning - alarm didn't work, thought I checked that clock icon was on place on notification bar
amwayorlando said:
But I use task-killer not for the purpose of saving ram, but for using less data. Some programs such as facebook or a twitter client would try to connect to the internet every once in a while. I'm on a low data limit plan in China. So I don't want those programs to eat up all my data.
Click to expand...
Click to collapse
Have you thought about using something like APNDroid or Toggle Data, to just switch off the cell data when you don't want to use it?
Or, Modify the behavior of the applications you don't want using data?
I have my facebook and twitter for example set to manual update only (for battery saving purposes) because there's nothing there that is critical important info, and I don't need to be notified.
Nice thread though, I'm pretty sure I try to keep people informed that task-killers aren't needed and cause issues, everywhere where it comes up. I find humor that people will still argue, even with a developer, this fact. I've had 150+ hours uptime with no slowdown (and 30 apps running) on the stock rom (without highmem support).
bofslime said:
Or, Modify the behavior of the applications you don't want using data?
I have my facebook and twitter for example set to manual update only (for battery saving purposes) because there's nothing there that is critical important info, and I don't need to be notified.
Nice thread though, I'm pretty sure I try to keep people informed that task-killers aren't needed and cause issues, everywhere where it comes up. I find humor that people will still argue, even with a developer, this fact. I've had 150+ hours uptime with no slowdown (and 30 apps running) on the stock rom (without highmem support).
Click to expand...
Click to collapse
Then please inform us of a thread that can verify what you all are saying. Not in an argumentative tone, my linpack score drastically improves after 16 hours of uptime, and a task-killer.
Rom:CM 5.0.2 -OC Kernel
wesbalmer said:
Then please inform us of a thread that can verify what you all are saying. Not in an argumentative tone, my linpack score drastically improves after 16 hours of uptime, and a task-killer.
Rom:CM 5.0.2 -OC Kernel
Click to expand...
Click to collapse
This has basically been discussed into the ground. In my eye's, its a fight vs what I like to call "Windows XP mentality", and that there was benefit on phones like the G1. With the copious amounts of memory on the N1 and droid, they cause way more harm, and immeasurable good (if any).
Summary thread: http://forum.xda-developers.com/showthread.php?t=627836
I've linked to quotes from others.
Threads/posts of interest: http://forum.xda-developers.com/showthread.php?p=5494890#post5494890
And: http://forum.xda-developers.com/showthread.php?p=5298630#post5298630
Well, this discussion is very interesting, but lets return to our problem with non-working alarm.
Since Sony Xperia X10 is now running on 2.1, topics related to 1.6 is not mentioned here.
This thread are created based on compilation of other threads related to optimization, and meant as an entry point for user interested in optimization.
Understanding your Android
Just to put something short, so we can understand our Android and some points related to optimization better.
Android is an open source operating system owned by Google that is maintained by Android Open Source Project (AOSP). The operating system is based on modified Linux kernel, where most of the application is written in Java language and running on DalvikJVM.
Android do things differently than old generation OS like Symbian, and below is the explanation related to performance.
Unlike Symbian, Android designed to have as many as application loaded and running in the OS, it maintain list of least used application that will be unloaded when a requests for more memory is made when the free OS memory is already low.
These are the nature of JVM, where allocation and deallocation of memory is managed by garbage collector as doing things in bulk is faster then working with small chunks. So you don't have to be alarmed when you open a memory viewer application and see your Android is running on low memory. Freeing RAM with task killer is only momentarily, as you uses the phone again, the free memory will goes down again.
Android phones stores system application, data and files internally in NAND flash area and stores user data in internal memory storage or external storage such as SD cards. This memory is different than your operating sytem memory.
Operating system memory is memory allocated for the kernel, native application and most application you download from market. Installing a lot of application will not directly reduce free RAM, nor uninstalling or removing files will increase free RAM directly. Action such as removing ringtones, wallpaper and even Sony PC Companion ISO will not free your RAM
In general there are two type of android application. One is a standalone application that only run if you open the application, and the other one is running even you haven't open the application which called service.
By design, guideline and suggested practice, application should not continue to run lengthy processing when it get pushed to background via home button, back button or switching to other application; properly build application will just go idle. Which means you should be less paranoid about application eating you processing power.
But service is meant to run lengthy operation as they don't have user interface and runs in background. Some service meanth for pushing or pulling data from internet, reading your files and do processing like playing songs, or just doing something then update the widget just to make you happy. Unnecessary services are the things that you should be aiming if you want to optimize your Android.
General FAQ about Optimizing Sony Xperia X10 2.1
I just updated to 2.1 and my phone really feel slower than 1.6
Since you had been using 1.6 for quite some time, your SD card should have quite a lot of photo and media. Just after you updated to 2.1, and add your Google and maybe Facebook account, the new Face Recognition service is actually already starting to scans all your photo, then when your Google and Facebook contact arrived, it will try it best to match photo and contact. This new Face Recognition really kicks hard in your processor, then after a while your phone will be as fast and even better than old stock 1.6.
I still feel that the phone is slow, is there any simple and quick way to optimize
The simple and quick to optimize your phone instantly is by changing the 2.1 dalvikvm to JIT capable dalvikjvm. You can read and apply them by reading the thread referred below, but before you do that open the below link in background tab and please do read more first.
Android 2.1 OPTIMISER V002 by Jerpelea
2.1 Customizer v0.99.1 by ttxdragon
Both optimizer contains script that will erase your "junk/unused" application from your phone, be sure to read them first before executing. My suggestion is you apply JIT modification first, before going optimizing by remove your "junk/unused" application.
Please do remember that you have to Root your X10 first.
How to root the phone
You can root the phone using methods below.
OneClick z4root Android Application
SuperOneClick Windows Application
Is [INSERT APP NAME] here is save to remove?
By removing unused application, you will gain certain amount of performance gain. Below are the links with app list.
2.1 Customizer v0.99.1 by ttxdragon
Official List of Apps that Can be Removed from a 2.1 x10 by exekias
And still a lot more in other Sony Ericsson X10 forum section but those two is quite complete
And in case you forgot to make backup you can go to
2.1 System Apps - In Case You've Deleted Them by XperiaX10iUser
After doing all that my Quadrant Benchmark is still low
You should run Quadrant as least two or three time or until you get best score, the first one usually yield low score, because a lot of memory allocation process to Quadrant happening during the first run.
Tuning Utilities
Memory Usage - Application to see how much memory used by your application and services
Advanced Task Manager - Application to see is your application running on foreground, background or idle and its memory usage
Quadrant Standard - General benchmarking tools to see if your changes make improvement
Linpack - Processor benchmarking
Titanium Backup Pro - Back up application, the paid version can freeze your app rather then uninstalling it.
Fine Tuning Guide
About Widget, Application shortcut and Live Wallpaper
Even though widgets looks really good in your phone, some widgets required simple periodic process for updating its display, some have a full blown service running to support it. A very instant example that you can see in your phone is the Power Control widget and the new Status Switch widget.
Power Control widget update triggered by configuration change such as wifi on and off, while Status Switch widget which have a battery level is triggered by a running service. Just put Status Switch widget then go to Settings -> Application -> Running Services. Then you will see there a Status Switch Update service running in background to update the battery level.
By selectively put widgets on your home screen, you can gain extra processing and memory. Timescape widget is even worse, it have three service running to support it.
Application shortcuts also uses extra memory in your home screen app and your home screen app is usually system persistent, reducing number of shortcut will give extra RAM and reducing the required rendering process during scroll.
Live Wallpaper just as the name said looks really nice and require extra memory and process of course.
Tuning via build.prop
Some value can be added and modified into build to increase the performance of X10.
dalvik.vm.heapsize=32m
This will change the maximum memory size per application. If you decrease the value, smaller application starts faster, but big application like games will prone to crash, if you increase the value too much, smaller application takes longer to start, but big application will extra gain benefit from less garbage collecting.
Reference: Test: How changing the max amount of memory per VM Heap can effect your ROM (Cyanogen)
windowsmgr.max_events_per_sec=60
This will change the maximum number of touch screen gesture events per second, the bigger the value, the smoother the scrolling will be
There still some more build.prop tweaks that you can do, but not all of them will be processed by X10 as each device behave differently.
reservation for more article to go
Nice clean guide, should help newcomers. Good work!
synlar said:
Nice clean guide, should help newcomers. Good work!
Click to expand...
Click to collapse
Thanks, but i am quite depressed after reading it my self and found that i make a lot of typo. Had to revise and revise again.. lol.
Nice piece of work there Xeviro..
Can you post your build.prop please i cant find the windowsmgr.max_events_per_sec=60 one in mine.
Wolfbreak said:
Can you post your build.prop please i cant find the windowsmgr.max_events_per_sec=60 one in mine.
Click to expand...
Click to collapse
That one you add by your self to you build.prop. If you look further in google, there still a lot of other build properties that you can set to Android.
There is another way to add and test build.prop instantly by using adb shell command "setprop key value" and "getprop key". Some property will take effect immediately, some require you to reboot.
How do you prove that the windowsmgr.max_events_per_sec=60 actually works? After applying that I tried input benchmark and it still showed 33hz.
ooidort said:
How do you prove that the windowsmgr.max_events_per_sec=60 actually works? After applying that I tried input benchmark and it still showed 33hz.
Click to expand...
Click to collapse
Ok, i just checked, that for this build.prop property to take effect, you need to reboot the device first. I just test on my, giving 10 and 200 in value. With 10, the input benchmark showing less then 20hz most of the time, while with 200 it gives me 40hz+.
Also you can see if you scroll the app list with 10 and 200 value, you can see the difference.
xeviro said:
Ok, i just checked, that for this build.prop property to take effect, you need to reboot the device first. I just test on my, giving 10 and 200 in value. With 10, the input benchmark showing less then 20hz most of the time, while with 200 it gives me 40hz+.
Also you can see if you scroll the app list with 10 and 200 value, you can see the difference.
Click to expand...
Click to collapse
I definitely notice the difference between 10 and 200, but it still doesn't go above 33hz... Maybe it's the framerate cap doing it's thing?
xeviro said:
Thanks, but i am quite depressed after reading it my self and found that i make a lot of typo. Had to revise and revise again.. lol.
Click to expand...
Click to collapse
Good write up! I was actually going to say something about the typos/errors, because I'm a jerk, but, you noticed them too, so I feel satisfied.
I hope people will read your little intro about RAM and realize a task killer's real purpose is to kill rogue services that kill battery.
xeviro said:
That one you add by your self to you build.prop. If you look further in google, there still a lot of other build properties that you can set to Android.
There is another way to add and test build.prop instantly by using adb shell command "setprop key value" and "getprop key". Some property will take effect immediately, some require you to reboot.
Click to expand...
Click to collapse
But where do i need them to add? At Beginning or at End or Middle?
iead1 said:
Good write up! I was actually going to say something about the typos/errors, because I'm a jerk, but, you noticed them too, so I feel satisfied.
I hope people will read your little intro about RAM and realize a task killer's real purpose is to kill rogue services that kill battery.
Click to expand...
Click to collapse
Please forgive my typo and grammars, i life in country where people simplify their way of communication. I cannot talk proper now. hahaha
Wolfbreak said:
But where do i need them to add? At Beginning or at End or Middle?
Click to expand...
Click to collapse
Anywhere
xeviro said:
Please forgive my typo and grammars, i life in country where people simplify their way of communication. I cannot talk proper now. hahaha
Anywhere
Click to expand...
Click to collapse
If i add this to the end of my build.prop my phone does not accept SIM unlock code anymore .... ??
EDIT: Strange, second time it worked ... btw. what is the default value ?
Ive added dalvik.vm.heapsize=32m to see what diff it will make and well..
wow.. it killed my phone.
It will show sony ericsson on the screen when you turn it on and just stay there!
So yeah... how can i fix this?
It's bricked, you'll need to reflash the software!
:-(
OP- Great thread, thank you!
Post on my Rooted 2.1 X10i using Tapatalk Pro and Swype
Yeah i knida noticed...
fixed now but im not trying that heapsize thing again..
Anyone here have the original/untouched nordic build.prop? I'm really appreciate it if you share it here. ^_^
Sent from my Xperia X10i (2.1 and rooted) using XDA app
Seansmit17 said:
Ive added dalvik.vm.heapsize=32m to see what diff it will make and well..
wow.. it killed my phone.
It will show sony ericsson on the screen when you turn it on and just stay there!
So yeah... how can i fix this?
Click to expand...
Click to collapse
Seansmit17 said:
Yeah i knida noticed...
fixed now but im not trying that heapsize thing again..
Click to expand...
Click to collapse
Its working correctly in my phone, and this heapsize settings is the most common one in android modding. you go check google and see the results.
I also attached build.prop from my phone.
Since my last thread i posted i felt i did a ****ty jobs of providing a guide.
I wrote this in the morning just after coffee, so try and enjoy the spelling and grammar.
Getting the best out of your X10
Considering you have rooted and loaded yourself a great rom...
like CM6.13 >Over yar<
There are many quality roms out there already,
But certain rules exist to notch up battery life and speed.
1.Always check what apps you are installing,
apps with ads can be a pain as they eat away at your bandwidth and battery.
Don't use apps that run passively and use the internet often.
Search "Adfree" in the market, 100% free and Epic.
This should be able to dodge most droid app ad's.
2.Disable your internet when not used.
Use the APN control widget 'works the best'
Save alot of juice here.
If it must passively update.. set your update itervals high
like every 10 to 60 minutes.
3.Don't use task killers that Kill All Apps...
Get a app like 'SystemPanel' by 'NextApp, Inc.'
Tested on all versions of android it works like a beast.
-important tip!
It allows you to exclude apps for the kill all widget 'awesome'
Since using task killers to Kill All is bad for the device
as many apps require to re-cache alot of data.
To exclude a app select it and hit 'exclude'
It also accurately detects 'system dependant apps'
I usually add all the common stuff like often used apps, widgets, ect..
Some live wallpapers and widgets use second processes, add these...
Messaging
Gallery
Music player
Web browser
Apps you know you use often and are safe and stable!!..
-Disable the monitoring system!
In the settings Un-tick 'Monitoring enabled'
Only useful if you’re having issue's with your phone anyway.
This uses a bit of juice so i disable it, unless I’m testing a new rom.
Add the kill all widget to somewhere you feel comfy. "will use exclude list"
Only exclude apps 'you or the system' will use often
It's very friendly and easy to use.
Go get it now.
4.Using the SD speed boost hack. >Click Yar<
Most people say that it only speeds up the read rate..
I have tested it in detail and even with my
"standard came with the phone 8GB sd"
there is a massive increase on both fronts.
-Before SD boost
Write: 1.6MB/s
Read:11.2MB/s
-After SD boost
Write: 7.5MB/s
Read:51.2MB/s
You can easily achieve much higher scores.
Using a setting of 2048 seems to be providing a nice beefy buffer for the sd.
This reminds me of a program that was made for netbooks with weak sdd drives.
Truly a must have for those browse media alot.
I also noticed games loading extremely fast, quake2droid loaded lvl1 in 2.12 Seconds.
The 3D Galery is faster than sonic the hedgehog on speed.
Mp3's and vids loading instantly.
Faster reaction rates in Launcher Pro.
There is a tiny increase in cpu usage and there by it uses the battery slightly more
But the end product is worth the minuscule increase.. it tiny... really.
This has been OmegaRED^ with a friendly guide to really using your x10
Your x10 is a tool, let it work for you.
Thank you
Sent from my X10i using XDA App
Wow nice guide, I'll check out the SD tweak. Does it work with our xrecovery? Or do we need to do it the manual way?
I have some questions re: multitasking. My understanding of the way that honeycomb works is that apps usually don't close when you exit them. They stay open until you use them again, or until honeycomb needs more memory, at which point it starts closing background apps. Is this accurate?
What puzzles me is that, if I have several apps open, some of which I want to keep running and some I don't mind if they get killed, when honeycomb needs memory it will just randomly kill apps?
This seems inefficient to me. Why doesn't it allow me to kill apps that I don't want and only "minimize" apps that I want to keep open? This seems inefficient but maybe I am missing something.
Most apps don't use any processing power when In the background, just ram. U could use a task killer however, it will probably just kill more battery life then it saves. Do u have performance issues when running lots of tasks? Ifso, THEN use a task killer to find out what is using up the processing performance and uninstall/stop the app.
(Using a task killer is NOT recommended)
Sent from my mailbox
I hear you. I think multitasking in Android (not just honeycomb) is an illusion. The new 3.1 "recent apps list" is just that... recent apps, it reopens apps you used, but as far as multitasking goes, it happens very rarely.
I'd love to be able to lock my browser into memory so it doesn't have to reload all the pages when I get back into it. I was filling out an online form and needed to get an order number from my gmail app... well, when I went back into the browser, it reloaded everything and I lost what I had filled - this is not multitasking.
I think the only true multitasking mobile os was windows mobile 6.5.
Sent from my Transformer TF101 using Tapatalk
Dyskmaster said:
Most apps don't use any processing power when In the background, just ram.
Click to expand...
Click to collapse
I guess when apps are kept in RAM is isn't a big deal. After all, we have a whopping 1 gig to play with right? Who could ever use up that much?
EP2008 said:
I'd love to be able to lock my browser into memory so it doesn't have to reload all the pages when I get back into it. I was filling out an online form and needed to get an order number from my gmail app... well, when I went back into the browser, it reloaded everything and I lost what I had filled - this is not multitasking[\QUOTE]
It's a bug in the browser then. It should remember all you wrote even if it was closed.
Click to expand...
Click to collapse
Magnesus said:
EP2008 said:
I'd love to be able to lock my browser into memory so it doesn't have to reload all the pages when I get back into it. I was filling out an online form and needed to get an order number from my gmail app... well, when I went back into the browser, it reloaded everything and I lost what I had filled - this is not multitasking[\QUOTE]
It's a bug in the browser then. It should remember all you wrote even if it was closed.
Click to expand...
Click to collapse
Technically, if it was truly multitasking (as in keeping the browser running while doing another task), then it should have just resumed. This happens on all browsers, but not all the time, only when Android decides to kick it out of memory.
Sent from my Transformer TF101 using Tapatalk
Click to expand...
Click to collapse
By far the best multitasking mobile OS is webOS. If a card is open and is anything other than a video, then it's running in the background unless the developer specifically codes it to suspend. Since I switched to Android, this is the one thing I miss the most about webOS.
For me, the only problem with how Android multitasks is with Quickoffice and Polaris Office. Try this: create a new document, add some text, and then start switching back and forth between it and other apps. Eventually (sometimes immediately) you'll return to a blank document, with no way to retrieve any edits. It's the same for a document that's been saved, and really limits how an Android device can be used to write long-form pieces while doing other things. Basically, you have to save every time before you switch to a different app (say, to look up some research).
In webOS, you'd just keep the card open and your document would be retained. And note: I'm not here to bash Android or glorify webOS. I did switch, after all. But man, either developers or Google have to fix this. At the very least, an app like Quickoffice should save its state when it's suspended, to include the currently open document. It doesn't actually have to run in the background, but it certainly shouldn't lose information.
Given how I'm using the Transformer, this a huge thing for me. I wouldn't switch to, say, the Touchpad, because webOS doesn't even have apps like this yet and probably won't for awhile. It might have Quickoffice sometime in the next few months, but that's about it. Oh, and the Touchpad is a weak tablet as well, and certainly doesn't have anything like the keyboard dock available. It's just that Google and the Android development community could learn a thing or two from webOS, starting with better multitasking support.
Okay, venting over. I feel much better now.
Sent from my Transformer TF101 using Tapatalk
wynand32 said:
By far the best multitasking mobile OS is webOS. If a card is open and is anything other than a video, then it's running in the background unless the developer specifically codes it to suspend. Since I switched to Android, this is the one thing I miss the most about webOS.
For me, the only problem with how Android multitasks is with Quickoffice and Polaris Office. Try this: create a new document, add some text, and then start switching back and forth between it and other apps. Eventually (sometimes immediately) you'll return to a blank document, with no way to retrieve any edits. It's the same for a document that's been saved, and really limits how an Android device can be used to write long-form pieces while doing other things. Basically, you have to save every time before you switch to a different app (say, to look up some research).
In webOS, you'd just keep the card open and your document would be retained. And note: I'm not here to bash Android or glorify webOS. I did switch, after all. But man, either developers or Google have to fix this. At the very least, an app like Quickoffice should save its state when it's suspended, to include the currently open document. It doesn't actually have to run in the background, but it certainly shouldn't lose information.
Given how I'm using the Transformer, this a huge thing for me. I wouldn't switch to, say, the Touchpad, because webOS doesn't even have apps like this yet and probably won't for awhile. It might have Quickoffice sometime in the next few months, but that's about it. Oh, and the Touchpad is a weak tablet as well, and certainly doesn't have anything like the keyboard dock available. It's just that Google and the Android development community could learn a thing or two from webOS, starting with better multitasking support.
Okay, venting over. I feel much better now.
Sent from my Transformer TF101 using Tapatalk
Click to expand...
Click to collapse
I was just using the Playbook at staples and it also has the browser multitask problem... when I open a bunch of tabs (cnn, bbc, globeandmail, espn, etc.) and go to another app, returning to the browser causes all tabs to refresh - it's actually worse than on android because at least on android the tabs can remain "active" without the need to refresh SOME to MOST of the time.
So the illusion of multitasking remains on all mobile os's.
Sent from my Transformer TF101 using Tapatalk
Multitasking means services running in the background. Which Android can, and does do. It does not mean having every single process and application running live in the background(who wants that anyways? not even windows does multi tasking like that anymore.).
JCopernicus said:
Multitasking means services running in the background. Which Android can, and does do. It does not mean having every single process and application running live in the background(who wants that anyways? not even windows does multi tasking like that anymore.).
Click to expand...
Click to collapse
Yes, light services that check for certain notifications is one thing, but apps that were run in the last 5 minutes should not close so quickly. In the meantime, I have a lot of services running and taking up memory that I DON'T want - I wish there was a way to adjust what apps stay in the memory (and which never load automatically), even if it does mean having to manually manage memory usage, I would rather it truly multitask than "fake it".
Sent from my Transformer TF101 using Tapatalk
Apps don't close, they are hibernated. If an app restarts from zero, it's a problem of the developer not implementing their save states properly. (I believe engadget app is notorious for this).
The concept of "closing" an app doesn't really exist. The closest thing is a force close, which is just removing it from memory.
There are a few apps that allow you tweak the thresholds, but they require root if I remember correctly.
Maybe even if it could use some of the 16/32 GB storage as a swap file it would help. It wouldn't slow the system down much since it's not on a magnetic platter like on a PC. I'd gladly give up a gig or two of my 32GB for a swap file if it meant the apps (or browser tabs) I was working with wouldn't get unloaded from memory while I was using them.
Mutnat said:
Maybe even if it could use some of the 16/32 GB storage as a swap file it would help. It wouldn't slow the system down much since it's not on a magnetic platter like on a PC. I'd gladly give up a gig or two of my 32GB for a swap file if it meant the apps (or browser tabs) I was working with wouldn't get unloaded from memory while I was using them.
Click to expand...
Click to collapse
Archos did this on their 256mb ram devices (added 32mb swap I believe). It did absolutely nothing on those devices, but maybe a gig or two would make a difference. I'm willing to sacrifice some battery life and speed for a true multitasking device.
Sent from my Transformer TF101 using Tapatalk
JCopernicus said:
Apps don't close, they are hibernated. If an app restarts from zero, it's a problem of the developer not implementing their save states properly. (I believe engadget app is notorious for this).
Click to expand...
Click to collapse
I hear you, and I do wish Quickoffice and Polaris Office would handle this correctly. That's really my only concern with Android, that these apps lose edits and new text with frustrating regularity.
illusion multitasking ? lol
want to see fake multitasking ,look at ios,it fakes it. but android is pure multitasking. multitasking allows app to still running and finish it's process in the background. try open a browser,load a rich content page, change to other app,wait for few second n backt to browser,the page should be loaded.
case when ur app won't continue from previous state just because android has its own way to kill processes, this is merely due to memory management.
xufuchang said:
illusion multitasking ? lol
want to see fake multitasking ,look at ios,it fakes it. but android is pure multitasking. multitasking allows app to still running and finish it's process in the background. try open a browser,load a rich content page, change to other app,wait for few second n backt to browser,the page should be loaded.
case when ur app won't continue from previous state just because android has its own way to kill processes, this is merely due to memory management.
Click to expand...
Click to collapse
But the point is, if I return to the browser more than just a few seconds later, it restarts and then reloads all my tabs - this isn't multitasking. With the amount of RAM we have on these devices, apps shouldn't be closing so aggressively - and worse yet, apps that I don't want in memory shouldn't be taking RAM away from important 'active' apps!
Sent from my Transformer TF101 using Tapatalk
EP2008 said:
But the point is, if I return to the browser more than just a few seconds later, it restarts and then reloads all my tabs - this isn't multitasking. With the amount of RAM we have on these devices, apps shouldn't be closing so aggressively - and worse yet, apps that I don't want in memory shouldn't be taking RAM away from important 'active' apps!
Sent from my Transformer TF101 using Tapatalk
Click to expand...
Click to collapse
yes some apps just buggy, even honehcomb itself isn't perfect. but multitasking sure is working in android.
wynand32 said:
By far the best multitasking mobile OS is webOS. If a card is open and is anything other than a video, then it's running in the background unless the developer specifically codes it to suspend. Since I switched to Android, this is the one thing I miss the most about webOS.
For me, the only problem with how Android multitasks is with Quickoffice and Polaris Office. Try this: create a new document, add some text, and then start switching back and forth between it and other apps. Eventually (sometimes immediately) you'll return to a blank document, with no way to retrieve any edits. It's the same for a document that's been saved, and really limits how an Android device can be used to write long-form pieces while doing other things. Basically, you have to save every time before you switch to a different app (say, to look up some research).
Click to expand...
Click to collapse
That sounds like a design flaw in the applications. What happens when you switch to another application is the application being pushed into the background receives an OnPause() event. The application should handle this event by saving the user context in a manner that ensure no loss of data (ex write to the drive) and free resources. When you make the application the active you move it to the top of the activity stack and the app receives and OnResume() event. The app should handle this event by restoring the user context to the saved state.
This is all very well documented in the Android API along with the expectations of the actions the application should take. However, a developer can choose to ignore the recommendations.
jerrykur said:
That sounds like a design flaw in the applications. What happens when you switch to another application is the application being pushed into the background receives an OnPause() event. The application should handle this event by saving the user context in a manner that ensure no loss of data (ex write to the drive) and free resources. When you make the application the active you move it to the top of the activity stack and the app receives and OnResume() event. The app should handle this event by restoring the user context to the saved state.
This is all very well documented in the Android API along with the expectations of the actions the application should take. However, a developer can choose to ignore the recommendations.
Click to expand...
Click to collapse
Thanks for the explanation. I'm surprised then that these particular apps are having the problem--I mean, Quickoffice should know better, right?
Well, I've reported the issue, perhaps they'll resolve it.
Sent from my Transformer TF101 using Tapatalk
Can someone clarify this for me... (as I am used to Windows).
Let say I will start task like zip/unzip of a file/files or download of a file from the net. Can I do something different in the meantime and wait for the task to finish in the background?