TuneUp charts new optimization territory each year with its releases of TuneUp Utilities. This year’s version lays a cornerstone in our development cycle, and introduces an entirely new approach to speeding up your PC and making it more reliable. It’s called: TuneUp Program Deactivator.
In this week’s blog post, I’m going to share how I came up with this new feature and how the original idea was transformed into reality. You are going to have access to never-before-seen prototypes, initial screenshots, and our development cycle. Enjoy!
What is TuneUp Program Deactivator?
Windows users know this age-old theory; the more software you install on your PC, the slower it gets. Now, instead of uninstalling programs (you might need them later, right?), we figured out a way to disable programs rather than get rid of them entirely.
So what does that mean? TuneUp Program Deactivator turns off all of the parts of a program that slow down your machine the most: start-up processes, services, and automatic background tasks. The program is still there, but it’s just “sleeping”. There is no memory consumption, processor usage, annoying balloon tips, splash screens during startup, or hard disk activity involved. The cool thing is that the moment you start the program (just double-click on its launch shortcut), TuneUp Program Deactivator enables it again on the fly!
From idea to reality
Back in January, we tested how much a typical PC suffers under the load of having 200 programs installed on it. The result: IT horror! Boot time took more than seven minutes, and the performance of the 2009 notebook was comparable to a vintage machine from 1999—it produced error messages and froze on a regular basis. The test bed was a prime example of a PC that a user never cared to maintain or didn’t know how to optimize.
This sparked an idea! What I wanted to know was how much of an effect TuneUp Utilities 2010 would have on this horribly bogged down machine. I used our suite to optimize the PC as thoroughly as I could; I disabled unnecessary services, turned off start-up entries, and defragmented the disk. I also tried optimizing the system with the current versions of all major competitive products. And while performance improved a bit after I used our own as well as other tuning suites, it did not reach the level of a clean and fresh Windows PC.
For me, this situation was just not acceptable— all of the tuning suites on the market (including our own) couldn’t really solve PC performance problems caused by third-party programs. This haunted me for weeks—I simply had to find a solution to this problem.
And no, simply uninstalling these programs wasn’t a solution—at least if users wanted to use these programs again in the future. Many users don’t like to uninstall software because they don’t know how to reinstall it should they need it again. In some cases, they don’t know where they downloaded the software from, they don’t have the CD anymore, or they don’t know where the product key is, among many other reasons.
The incredible loss in performance is because many programs claw or “hook” themselves in way too many areas of Windows to keep track of. They don’t just run at startup (which is rather easy to disable); they also install services or create so-called “scheduled tasks” that get started regularly while the PC is running, and in many cases they even use several of these methods at the same time. Combine all this and multiply it by the amount of installed programs, and you’re pretty much facing a ruined PC.
I needed a way to get rid of all those “hooks” of a program (at once) and restore the performance of even the most bogged down Windows PC—all the way back to its original state. My first step was to determine if this huge undertaking was even possible—could performance get back to normal, even with hundreds of programs installed? I proved this theory in February by manually disabling each and every hook entry using Sysinternals Autorun and shutting down all third-party processes.
It was mind-bogglingly complex because even I as an expert sometimes couldn’t figure out which programs these entries belonged to, but it worked. Without all of these entries, all of the test PCs eventually performed as well as they did on the very first day they were used.
Obviously, 99% of all Windows users out there don’t a) have the time or b) the knowledge to find every single entry of a program and safely turn them off. We needed a solution—a tool to automatically do this. This is how the idea of TuneUp Program Deactivator was born!
One problem, two solutions
To create a solution to this performance problem, I locked myself in a room with two of my most skilled developers to theorize about possible solutions and test them. Our goal was to figure out a way to deal with all of the hooks programs could use and thus speed up Windows again. We eventually ended up with two solutions:
- The creation of a virtual environment, or a “sandbox”, that’s separate from Windows. We needed to figure out a way to put all of these programs inside that environment. While a good idea in theory, we realized that this is too complicated and that there are many issues users would face, one of them being bad performance through the virtualization overhead.
- The disabling of all of the hooks. We needed to figure out a way to detect all relevant resource-draining hooks a program had created and turn them off safely.
Despite the fact that finding all of these hooks is a complex task, we went with the second route. We wanted to give users the least complicated way to see which programs slow down their PCs, and give them full control by allowing them to turn programs on or off with just one click.
During the initial research phase, we faced many problems. Disabling some hooks within the operating system caused error messages and led to stability problems. There was a need to care about dependencies between services, scheduled tasks, and start-up entries; disabling program A should not lead to problems with an enabled and active program B! In March 2010, we created early prototypes, which were basic command line tools that disabled all of the hooks of a program and re-enabled them.
Using these prototypes, we experimented with hundreds of programs and developed several methods to determine how programs integrate into Windows systems, such as reading out Windows Installer tables, uninstall keys, version information blocks of all executable files, and other relevant entry points in the Windows registry.
Main goal achieved
May 1 marked the day of our proof-of-concept. We had successfully proven that it was possible to disable essentially all of the hooks of a program with our own software, and we were in the stages of defining programs, especially security software and drivers, that we “whitelisted” and thus protected from accidental deactivation. We then moved the early prototypes into the next stage of development, such as tweaking the graphical user interface and fixing bugs. Next on the agenda: a name! During the entire development phase, we had several potential ones for this feature; these included: “Sandman”, “Program Reliever”, “Program Standby Switch”, “Programs-on-Demand Switch”, “Performance Drain Switch”, “Slowdown Eliminator”, “Program Unhooker”, and “Program Silencer”.
But in the end, the name TuneUp Program Deactivator was chosen. Then we set two new goals to make the feature even more unique. First of all, we wanted a performance meter that shows the load of each installed program both before and after users disable it. We came up with several ideas to show our users how each disabled program affected boot-up performance, day-to-day performance and shutdown performance.
Our second goal: We didn’t want to force users to constantly go in and out of Program Deactivator to turn on programs they needed. We knew that would be just too much of a hassle. We needed a way to automatically re-enable programs “on the fly”. That’s why we designed TuneUp Program Deactivator to detect when the user tries to launch a disabled program again, so it can automatically reactivate all of the necessary components (the processes, background tasks and services). Typically when a feature of a program is missing, the program will try to launch its self-repair mechanism or produce an error message. To protect our users from these types of problems without slowing down the PC through constant polling or monitoring, we used a little-known redirection mechanism provided by Windows itself. This means when users double-click on a disabled program (say “itunes.exe”), Windows launches a small part of TuneUp Program Deactivator instead, which first re-enables all of the program’s components automatically and then starts the original program itself. The program will never know it was disabled in the first place!
The finish line
Once we achieved all of our goals, we went into the beta and release candidate phases in late summer and early autumn of 2010. Our thousands of internal and external testers helped us fine-tune TuneUp Program Deactivator and fix remaining bugs. In total, we had eight beta versions and one final release candidate before we launched TuneUp Utilities 2011, with our new key feature TuneUp Program Deactivator.
All in all, we’ve made speeding up and stabilizing much easier for all of our users. Rather than asking users to uninstall (and then probably reinstall) their programs regularly to keep their PCs at peak performance, they can now just turn them on and off with a single click. I’m proud that, over the past couple of months, we’ve developed a hassle-free solution that achieves all the positive effects of many startup, service, and scheduled task managers combined—while still being much easier to use. Actually it’s a lot of fun to just flip those little on/off switches and see your PC’s performance go up instantly, especially on PCs with a large number of installed programs!
Readers, now it’s your turn: Please leave a comment, and tell us what you think about TuneUp Program Deactivator. Do you have any more wishes for the feature or overall software suite in the future?
26 Responses to “Behind the Scenes: TuneUp Program Deactivator”
- Geek Squeaks’ of the Week (#88) « What's On My PC
- 5 Reasons Why Program Deactivator is Good for Your PC » TuneUp Blog about Windows
- Happy Holidays from TuneUp! » TuneUp Blog about Windows
- TuneUp Utilities 2012 Full Version + Serial Number « shada8
- 10 Essential Tweaks: Pushing Your Gaming PC to Its Absolute Limit (Part 1) » TuneUp Blog about Windows
- The Essential Diablo 3 Tuning Guide: Diabolical Tweaking for Best FPS! » TuneUp Blog about Windows
- 10 Steps To Boost Multimedia Performance of Your PC (Part 1) » TuneUp Blog about Windows