kanaida
Android Expert
Ok, so let's talk performance. If anyone knows any low level tricks i'm all ears 
And PlayFulGod, regarding the VM Heap size. I finally found a way to describe how it works from my own testing and reading various sources.
Basically
Lower VM Heap = fast number crunching, app crashes can happen if heap is too small. Some bigger apps may not run.
Just big enough VM Heap (48 in my case) = is big enough for big apps to run, but doesn't sacrifice as much integer performance.
Really high VM Heap = cpu performance hit, lets even bigger apps run
Also, you mentioned the swap partition helps sometimes. Do you mean on this phone or one with less ram?
I know sometimes depending on hardware etc, there may be paradoxical effects. Like if you had a really fast or slow sdcard and stuff. My strategy is if you have enough ram on a device to keep most of the apps you use in memory, disable any kind of swapping because with a correct heap size, android kills off apps properly. Having a swap file/partion interferes with the android application life cycle. When memory is low, android will normally tell an app to commit suicide, it writes a few tiny variables (it's state) and the app is closed. Next time the app is switched to, it just restarts loading those little variables. Adding swap to the mix basically makes android write to disk for nothing. In reality it may swap it out to disk, taking time and I/O resources, delaying the built in mechanism, possibly twice if it has to read the memory from swap -> ram just to kill it. But more important than that, this mechanism was designed so that it tries to fill up as much ram as it can, so frequently used apps are always in RAM thus avoiding extra disk reads. I think it would only be faster if somehow your sdcard could read faster than your internal memory.

And PlayFulGod, regarding the VM Heap size. I finally found a way to describe how it works from my own testing and reading various sources.
Basically
Lower VM Heap = fast number crunching, app crashes can happen if heap is too small. Some bigger apps may not run.
Just big enough VM Heap (48 in my case) = is big enough for big apps to run, but doesn't sacrifice as much integer performance.
Really high VM Heap = cpu performance hit, lets even bigger apps run
Also, you mentioned the swap partition helps sometimes. Do you mean on this phone or one with less ram?
I know sometimes depending on hardware etc, there may be paradoxical effects. Like if you had a really fast or slow sdcard and stuff. My strategy is if you have enough ram on a device to keep most of the apps you use in memory, disable any kind of swapping because with a correct heap size, android kills off apps properly. Having a swap file/partion interferes with the android application life cycle. When memory is low, android will normally tell an app to commit suicide, it writes a few tiny variables (it's state) and the app is closed. Next time the app is switched to, it just restarts loading those little variables. Adding swap to the mix basically makes android write to disk for nothing. In reality it may swap it out to disk, taking time and I/O resources, delaying the built in mechanism, possibly twice if it has to read the memory from swap -> ram just to kill it. But more important than that, this mechanism was designed so that it tries to fill up as much ram as it can, so frequently used apps are always in RAM thus avoiding extra disk reads. I think it would only be faster if somehow your sdcard could read faster than your internal memory.

