Ainvo Registry Defrag Portable
Full user review
"Snakeoil for rubes"
None. I can't believe that users, once told the registry gets copied into memory, can't figure out that one byte is just as quickly accessed in RAM as any other byte. Defragmentation of the registry's .dat file does not equate to somehow slowing how memory gets accessed.
Risks the stability of the OS for an imperceptible gain in file load time for the registry's .dat file which only occurs on startup of Windows to load the registry into memory.
Defragging the registry will do nothing to change the performance of your Windows host. The registry gets copied into memory and it is the memory copy that gets accessed by processes. Since memory is RAM (random accessed memory), the time to access one byte from the memory is the same as to access any other byte. Because the memory copy of the registry gets accessed, defragging the registry's .dat files on the hard disk will do nothing to alter performance of registry use after you have loaded Windows.
The only savings you get is from file load time: the time to load the .dat files off the hard disk and copy them into memory. This isn't some magic defrag operation. It's the same that you do when defragmenting any other files except these system files are use when Windows loads so you cannot defrag them while Windows is running. So what does a registry defrag program do? It schedules the defrag of the registry's .dat files at the start of Windows before those files are inuse. This is the same procedure performed by, say, SysInternals' "pagedfrg" utility (which is also freeware).
So a registry defrag is of no value after Windows has loaded and has copied the registry's .dat files into memory. Once in memory, access time is the same no matter where is the byte in memory. The amount of time you save to load the registry's .dat file on Windows startup might be a grand total of 1-4 milliseconds but other processes run in parallel so it's of dubious value that the .dat files will load faster while the change in load time is so imperceptible.
Defragmenting the registry's .dat files is something of interest to obsessive-compulsive types that need to tweak even when there is no real-world change or advantage for the tweak. It's like repeatedly hitting the cross-walk button and when it changes you feel like you made a difference - except the button isn't even connected. After maybe 10 years of use of an instance of Windows (i.e., you never did reinstalls in that time) and with the gradual bloat of the registry, there might be enough fragmentation of the .dat file to warrant its defrag so you can save all of 1-2 seconds in the startup time for Windows. If you want to defrag the registry at earlier intervals, remember that you are putting your OS at risk each time.
Some snakeoil peddlers even claim that the registry will be smaller in size so it will take less time to load. Yes, a 10MB sized registry will load faster than a 100MB sized one. Yet defragmentation means making the bytes contiguous for a file, not that you reduced the size of the file. Duh! Presuming the registry defragger does not increase the size of the defragged registry (some will), you cannot reduce the size of the registry because you still need everything in there. Cleanup of the registry is a whole different tweak than defragmenting the registry. They're are the same thing. One takes separate clusters of a file and makes them contiguous on the hard disk but that does NOT reduce the size of the file (the number of bytes that get loaded into memory). The other removes entries from the registry which will make it smaller (except this is a database, not a linear file of text entries so deletions may not necessarily reduce the size of the database).
When committing this type of brain surgery on your OS, make sure you save an image of the OS partition. Then if the defrag screws up the ability to load your OS, you can restore from your backup image (provided you have a means of booting the restore program separate of the OS). Make sure you have an escape route.