[Atrix 4G Android Development] :
That's cool man thanks :)

From what I read from google development the dalvik vm is only virutal memory. I didn't read about any systems which clear dalvik vm at all as the linux kernel is limited in many ways this is one thing that isn't implemented by default unless someone built a kernel or a script to clean dalvik cache at a set time say every 7 days or so. That's why all Android phones slow down eventually. It's the dalvik system limitation, that's why more dalvik is better to allow the phone to perform at it's best for it's limited amount of time it can do so. It caches apps that we use most often to open more quickly. On top of that for games it caches game data into I/O as to allow the total system bandwidth to peak when the load is great and the performance is required. I/O is slow so a small vmheap will make that already extremly slow I/O to perform even slower than it's peak potential (I/O southbridge/ northbridge physical performance limit). As the bigger vmheap will allow more apps to stay in dalvik virutal memory to allow more apps to open up quickly since the dalvik vm is big enough to cache the entire app. It's like in Windows for "Superfetch" which is a feature to caches the most common apps in the Windows Virtural memory which is just a file on the primary nand or primary hard drive of the system. On android were talking about 1 file that is only 384MB and we know all large files perform faster than smaller files especially in android. Like say you copy over 1,000 1MB files you will get 1-3MB/s and if you transfer 1 1,000MB file your will get your maximum potential speed of what 6-15MB/s+. That's what the dalvik does it allows the Android OS to reach the I/O maximum potential. A smaller dalvik vm will actually cause the I/O to do more work and use more resources than just having 1 large file that doesn't need to change size depending on load. Over time the Android OS caches up all the way and the OS slows to a crawl. What the 384m will do is allow the OS to run at full speed for a longer period of time (in terms of months). Another wise thing to do is on ocassion every 30 days is to wipe dalvik cache in CWM to always get maximum performance.

Most or all apps use very little memory like in terms of their foot print from 1-80MB per app. Games use a lot of physical ram usually 256MB+ of foot print. Once the 8m vmheap is reached the system has no option but to perform poorly because overhead is so low. It's like on Windows if you set virtural memory to only 128MB when your system has 6144MB of ram, it can only cache 128MB and that limit will be reached almost right away and performance will significantly reduce as a result. So in windows it's ideal to have the minimum and maximum virtural memory at 8096MB unless you have more than 8096MB of ram then I'd just go all out and set the minimum and maximum to 16144MB. That alone will make a huge difference in gaming primarily and all other applications will perform better. All options of any operating system loves overhead so it can unload 100% of itself to memory or virtual memory so the CPU can use the ram to perform operations since physical ram is a very fast and on android we may see 1GB/s+ of physical memory performance and the CPU may be able to do 5GB/s+ of processing bandwidth. So as we see the bottleneck is at the bottom of the tree, the I/O. The CPU performs at 5GB/s, the memory performs at 1GB/s, and the I/O performs at only 5-20MB/s. It can only reach the 20MB/s+ range when dalvik vmheapsize is at 384m. It could potentially perform even better is the vmheapsize could boot up at 512m etc but it's a linux kernel system limitation. These same types of limitations apply to the linux operating system but not as bad as android.

Thanks Good Luck Guy's! :)