The story seems to be the same – old phone is slow, get a new phone and be amazed at the speed, a few months later the new phone is running as slow as the old phone was. This was the case when my quad-core 2GB RAM HTC One M8 started running slower than my dual core HTC EVO 4G LTE recently.

For many of you this will be a “duh” article, although understand that I’ve come from the root world for the past four years in which this generally never happened to me.

Usually I don’t experience marked slowdowns as I’ve been flashing ROMs left and right for the past four years, which puts the phone in a new state every ROM you flash, but with working three jobs and being a dad to a one-year-old, and also not particularly feeling strongly drawn by any new ROM for the M8, I’ve sat it out on the same ROM for a few months.

I’d noticed the slowdown last week. I used to be able to open the camera and take a picture within a second or two, but it became an eight second ordeal in which time whatever bit of life I was attempting to capture had most likely passed by. Running seemingly non-bloated apps when I would exit they would hang several seconds before the launcher showed up. I started getting more and more apps not responding, the keyboard took its own sweet time to launch. Installing a small new program could take a minute or two.

I uninstalled a few programs, looked at the list of running tasks to see what was consuming CPU (nothing was), and resolved that it was most likely time to wipe the thing and start again.

You’ll notice a theme when someone comes to the root world or from a ROM they’ve been running for a while, and that goes along the lines of “wow, this ROM is fast!” even when it’s based on the exact same ROM they came from except with SuperSU added. Unfortunately, this is how a lot of kangs manage to get donation monies from new users – the illusion that their product is faster because any new install is faster.

I decided to do something that as a ROM-flashing root user I’ve never really needed to do – that be wipe out the entire program cache and delete a bunch of temp files. Now, the temp files really don’t contribute to a slowdown as they’re rarely, if ever, accessed. The cache files however are accessed quite a bit depending on the application.

I grabbed a copy of Clean Master for the following, but you can use whatever cache cleaner you want. I ran it and it claimed I had nearly 2.5GB of junk, with cache files accounting for almost half of that. After just clearing the cache I went from nearly eight seconds to turn on the screen and open the camera app to somewhere between two and three seconds.

While my phone still isn’t as snappy as it was day one, at this point I can blame the multiple widgets I have running, a launcher full of icons I should just delete,  along with the apps that refuse to hibernate, It’s time for me to switch back to Dalvik and run Greenify on the apps that are taking up memory.

It seems there’s nothing that’s stopping application cache from becoming absurdly bloated in Android 4.4.3 running ART runtime, and although I’m not an expert at how Android handles a cache under ART, I would assume that the cache is heavily accessed during a program launch, and the bigger the cache the longer the read to go through the program’s data files.

In the olden computer days of yore there used to be a sweet spot in Outlook for how many messages you could have in your inbox before it imploded on itself and became impossible to use. As you neared that number, Outlook would go from perfectly fine to markedly impacted to next to impossible to use within a couple of hundred messages. This is how I imagine the cache. I’m probably wrong on this, but it did feel like my phone went from hot rod to heap in a very short amount of time.

Anyway, my absurd slowdowns seem to have been mostly solved by running a 1-tap application to kill the cache files, and I switched from ART back to Dalvik as I don’t think the ART implementation on my 4.4.3 was particularly polished.