Malatesta's Speed Guide: How to (Easily) Boost Your Windows phone Performance
So you like your current setup on your Windows phone but are looking to add that extra oomph to give it just a little extra speed and fluidity? Well, look no further as I’ll share some of my favorite tweaks to help get your phone running as zippy as the processor can handle.
Most of these tweaks will not even require us to alter directly the registry. Instead, we will rely on various third party programs to do that for us. This will allow a method to record our changes as well as a quick way to “undo” anything you find unsatisfactory.
Oh and none of this involves over-clocking the processor—I’m just not a fan of that technique.
Regardless of your ROM build (custom or official), OS type, or device make, so long as you are running a Windows professional OS, you will be able to apply these changes. For the sake of audience reach, we will be using a Sprint Touch Pro 2 running a custom WM6.5.1 ROM.
Read on for the only guide you’ll need as I reveal all I know on this topic.
First and foremost I should point out that I don’t consider any of these changes absolutely necessary to enjoy your Windows phone — in fact with my roughly six WM6.5 devices, I only have done this to the one I use the most: the Touch Pro 2. Still, if your device set up perfectly or you just flashed a new ROM, taking the 15 minutes to do these changes will give a noticeable boost in speed.
Second, nothing is free. The big trade off in doing these changes is a reduction in available program memory, i.e. RAM. Personally, I don’t care about available RAM. Windows Mobile 6.1 and 6.5 do a great job of managing memory and as long as you have more than 50MB of free RAM after a boot, I would not worry about it.
Still, to keep this in perspective, these changes also don’t consume a huge amount of memory either. Just be aware that’s how some of these tweaks work: we’re allocating RAM for larger amounts of available cache.
Third, a lot of what is below is redundant as many of these program overlap, so don’t feel you have to all that is listed below. Fact is, whether you do one or all of these tweaks, you will see a difference in performance.
What You Will Need
The first three programs are nearly interchangeable and you do not need all three as they overlap in fucntion. However, MemMaid has extra housekeeping utilities, which makes it great for keeping your device tidy.
- HD Tweak (free)
- Gaz TD2 Tools (free)
- Dinarsoft MemMaid (pay)
- SKTools (pay)
- SpeedBooster (pay)
- UPX4PPC (free)
- PagePool Changer (free)
- Various .cabs (free/linked below)
This is a great, free utility. NRGZ28 often includes this in his custom ROMs, otherwise you can just download and install. Granted this program is optimized for higher-resolution Windows phone devices, so keep that in mind when running it.
Listed below are the sections to change with my recommend settings. Soft reset to take effect.
The first part is optimizing the internet connection, loosely speaking, allowing more data to flow; killing the Statup animation allows faster boot times and the rest help optimize the graphics processing.
9.1 10 times 9.2 10 times 9.3 Larger/Faster
Section 12: Startup
Section 13: Internet Explorer
Section 14: TouchFLO 3D (optional)
Section 18: Performance – Energy
18.3 Very Large
Gaz TD2 Tools
This program overlaps significantly with HD Tweaks. The newer version is for WM6.5 only and while the author has only tested it on the Diamond 2, it works for most things on other HTC devices. Your mileage may vary and .NET CF 3.5 is required to run.
For CDMA devices it is not recommend you alter any of the phone/data options as these are only typically for GSM radios. Negative results may incur if you alter these.
- File System Cache: Large
- File System Filter Cache: Large
- GDI/Font Cache: Very Large
- Push Internet Engine: OFF (saves RAM if not needed)
- GPS: Optimized
Besides the tweaks below, MemMaid is one of my favorite programs. It is light, runs solid and has a ton of unique features. For instance, I like to have it clean my registry, delete temporary files, debug my notifications, etc. every Sunday at 4am automatically. You can also schedule it to close programs and clear the RAM.
Read our full review for the nitty-gritty, but for the record I swear by this program.
Like some of the above tweaks, this alters some of the system cache files and Internet Explorer connection settings. Make sure you have selected "Advanced Mode".
Jump To --> Tweaks --> System Tweaks --> Extreme Speed
I do like to run MemMaid and SKTools back to back as I find when it comes to registry cleaning each program sometimes find different errors. Having said that, please be careful and don’t be over-zealous as you can cause problems too.
After I clean the registries, once in a great while I will compress the registry. Like on a desktop PC, compressing the registry can have minor benefits for system performance. Will you notice it? I make no claims, but I like the sound of it.
- Optimize --> Action --> Performance
- Category --> Registry --> Registry Optimizer
One way to make the device easier to interact with and seemingly “more responsive” is to increase the screen sensitivity. This allows light touches to the screen as opposed to hard presses. The easier way to do this is simply use the screen calibration tool (Settings --> System --> Screen --> Align Screen).
When running this tool press as light as you can on those crosshairs. The amount of pressure is proportional to how sensitive the screen will be — the lighter the touch, the more sensitive; the harder the touch, the less sensitive.
An alternative is to run a .cab file from XDA developed by azharsunny called iTouch. This will pre-set the registry with the most sensitive values for the screen. This should work on most devices, however there is a claim that it will not work on newer Touch Pro 2/Diamond 2/HD2 devices. Your mileage may vary.
Drivers, Drivers, Drivers!
We’re not going to dig up the old Direct3D driver issue on HTC devices, but there has been progress on this front for us due to some crafty folks at XDA. There are three applications that I usually install to help speed up the graphics; the latter isn’t really a driver but a graphics tweak:
Do you use them all, one and do they really make a difference? To the former, you have to experiment--it won't destroy your device if you do install all of them, but you may have quirks confounding with all three. Do they make a difference? People are split on this--personally I noticed a difference using them, but it always hard to quantify.
Yup, it’s a pay app and the user interface is a bit gangly, but it has a special purpose: instead of overclocking the processor, this program changes the priority of pre-specified programs for the CPU. This works just like your desktop computer: the OS prioritizes certain programs over others, giving them first shot at CPU resources (see this article). Well, as it turns out you can do the same on your Windows phone.
This is a good program for those big-n-heavy programs that you occasionally run that you want to dedicated more CPU power too like GPS programs, Opera Mobile, document readers or even media programs. The best part is in addition to not potentially damaging your CPU and/or destabilizing your device, it also won’t zap your battery, unlike over-clocking.
This little freeware tool came out years ago and many of us spent hours testing which programs it worked on and which it did not.
The short of it is this: the bigger the size of a file, the longer it takes to load into memory, right? So what if you could shrink (compress) the .exe and/or .dll files of certain 3rd party installed programs — would they load faster?
Yes, they would.
One way to do this is using UPX4PPC, which is based of a compression/uncompression technology called UPX (it was primarily developed for desktop use). How it works is you install this program on your Windows phone, navigate to your \Program Files directory and compress various .exe files--not only will they load faster, but you save storage space too.
Downside is this: some programs are (wisely) pre-compressed by developers or can't be compressed, some files can be compressed but then they won't work or they have distorted graphics. Luckily the tool has a way to back up each file before you compress, so if something goes awry, you just drag-n-replace and you're all good to go.
The program does not work for files in ROM aka Windows system files, so do not even bother to try--it is only for programs that you installed yourself.
Once you have compressed the .exe or .dll files, that's it — you just now run the app like nothing changed. Get it here.
As mentioned at the beginning, I don't really do too much with my RAM, cleaning and maintenance--I just don't worry about that type of thing. Still, many do, so to appease you...
- Dinarsoft MemMaid--Hey if already using it, it does great for this task and can run on a schedule
- HTCAddicts cleanRAM--this is easily one of the more popular freewares out there, does an outstanding and thorough job
There are probably a dozen or so others out there and they roughly all do the same. It sure doesn't hurt to clean out your RAM once in awhile and it can help keeps things humming a long, so if that's your thing, then go for it.
Page Pool Changer
You’re familiar with all the above and still looking for more way to get more speed? Here is an easy, but more advanced tweak, for custom ROM users: adjust the Page Pool.
The Page Pool: What is it?
Suffice to say, Page Pool is yet another type of memory that the OS uses to load/unload programs. For the techy types, we defer to how Microsoft defines the term (Note they are using the dated WM5 as reference):
Applications use RAM in two ways. There is code that runs, and there is data that is created while it is running. On a NOR device, the code can run directly from the ROM and not be loaded into RAM first. This process is called XIP (eXecute In Place). NAND devices can't XIP, so their code is loaded into RAM and executed from there. If you don't have a Page Pool, this code is loaded into normal RAM. The Page Pool is a mechanism to limit how much code is loaded into normal RAM. With a Page Pool, we can unload code that hasn't been used in a while and reload it later if we need to. We can't do that without a Page Pool.
On a typical NAND-based WM5 device, the Page Pool is 4.5M.
On WM6.1+ devices, the Page Pool is significantly higher and often it is set proportionally to the amount of physical RAM on the device: the more RAM, the higher the Page Pool can be set. When set at 0MB, the Page Pool is dynamic, changing according to the environment—some prefer this latter setting, including myself.
Sprint and other carriers usually set their Page Pool at 6MB.
What is the optimal setting for performance? There is no clear answer for this and many ROM chefs range theirs from 10-20MB, especially for devices like the Touch Pro 2 where RAM is readily available. I often set mine at a whopping 26MB, mostly because I don’t really care about available RAM (the higher the Page Pool, the lower the RAM). On a Touch Pro 2, this along with my other Cache tweaks above, results in about 70+MB of RAM on boot. A safe and common practice is to set at 0MB aka dynamic, so it will adjust according to the device's needs.
But how do you change it? Usually there are two methods: use a ROM Kitchen to cook your own ROM with pre-set Page Pool settings (see SSK’s 3.0 Kitchen). Another, more direct method, allows you to change other people’s custom ROMs: Page Pool Changer from XDA.
For the latter, simply run the .exe and navigate to the ROM folder on your computer. From there you select the .nbh file and simply pick a pre-set range for the Page Pool and save. Done! This method is great if you use other ROMs but have a preferred Page Pool setting, plus it allows you to experiment with what you prefer in terms of performance.
Sure, nothing beats making a device faster than ripping out as much of the OS as you can without crashing the whole thing!
This last tip should be obvious—the less overhead in the OS, the faster it can go. While Microsoft and the OEMs have an idea of what they want included, usually the consumer has other ideas. There’s no easier way to do that than by flashing your own custom ROM or finding a ROM Chef with like-minded preferences.
Case in point: I don’t use Windows Live, Messenger, One Note, Remote Desktop, the default sounds, themes, etc. let alone the carrier “bloat” like Sprint Music, Navigator, etc. So rip it out with your favorite ROM Kitchen. After doing so, my storage memory jumped to 286MB on the Sprint Touch Pro 2, which is a net gain of about 45MB. Not too shabby.
Okay, we should mention this last step is for the advanced user, but honestly, this is something anyone can learn in an afternoon.
The best part about custom ROMs though is the ability to include a good chunk of what I’ve outlined here in your ROM—which saves time, energy and makes for a better experience. So feel free to share these tips with them.
A Little Secret about Custom ROMs
Ever notice how some custom ROMs are "lightning fast" while others are just so-so? It's not magic. ROM chefs are using the same source code for their builds as everyone else and they don't re-write it. No, the difference in speed most people notice is because those chef's wisely incorporate the above-mentioned cache and graphics tweaks.
Hint: Calkulin gets this stuff--his ROM/Kitchens have a lot of these tweaks built-in, making them very fast from the get-go.
Having run nearly every WM6.5 and 6.5.1xx build, I can tell you there is not that much difference in speed between the builds if you do these cache and memory tweaks. If there is a difference, it is slight.
Well, there you go. There are a ton of little things to enhance the speed of Windows Mobile, although as the years press on, there seems to be less need to do all or any of the above.
Still, this is a good way to better understand how your phone works and in which areas it can be improved upon.
Most of these tweaks only take 5 minutes or less to initiate, making it easier for the end-user. I recommend you try these after a hard-reset and experiment with what works and what doesn't for your needs (especially the drivers) and don't do all at once, otherwise if you do have some weird behavior, you won't be able to trace its origins.
Did I miss some trick that you like to do that helps with speed? Drops us an email or leave a comment as I'll be updating this guide when new information is available. And if you could forward this around, let your favorite ROM chef know, etc. it'll be even better for all of us.