Home and Links
 Your PC and Security
 Server NAS
 DVD making
 Raspberry Pi
 PIC projects
 Other projects
 Next >>

Speeding up your PC with a SSD

SSD use

Using a SSD (Solid State Disk) as C:

Once you have done everything else, you will end up at the final bottleneck - your hard drive. Whilst RAID (and new SATA 3 drives on plug-in PCI cards) can help, the only drive replacement that's going to make a real difference is a Solid State Disk (SSD)

You can achieve a noticeable increase in boot-up by using a SSD for C:, however whilst this is really useful on a machine that will be booted often (eg a laptop), it's less useful on a desktop (which you may leave running 24x7x365, as I do), although if you frequently switch applications (and use real memory hogs, such as Adobe photo-edit package) you may notice some improvement in application 'launch' times

Don't be tempted to place your Pagefile on the SSD - yes you get a noticeable speed up HOWEVER Windows constant reading and writing to and from the pagefile will quickly run your SSD into it's lifetime limit

To transfer your system to a SSD, you will need start with the SSD plugged in as some other drive, eg D: and format it

Often SSD's are used to speed up a laptop. To transfer the laptop system can be harder. Of course, if you can place BOTH the laptop C: and the new SSD in a desktop this makes the 'drive clone' process simpler. However, if that's not possible, you can create a drive 'image' by using a 'clone' app. on the laptop that will copy the system across your network onto a 'mapped' folder (from where the same app. running on the desktop can copy it to the new SSD). Note - be aware that the MS Licencing 'check' code means your 'cloned' drive will only boot when connected to the 'source' hardware (motherboard)

With the SSD plugged into the desktop, check that it can be 'seen' (in Administrative Tools, computer Management, Disk Management - it should appear as 'unknown' Disk (n) where n= 0 or 1,2,3 etc. HOWEVER if you use Windows XP to 'format' the SSD, it will create a sub-optimum file structure (and leave you wondering where the promised speed-up has disappeared to)

Windows XP, by default, Formats a drive starting at offset of 63, which means that normal SSD 4k block read/writes fall on 'odd' boundaries and this can fragment the data on your SSD dive, making for 'stuttering' and slow performance (yes, the morons at Microsoft strike again)

To format with offset 64, obtain Diskpar. This is a 'command line' app. (run from a 'DOS Box') - so just place the .exe in the root of C: (to make it easy to access from a Command Prompt). When asked for a 'starting offset', enter 64.

The alternative is to use a more modern system, such as Windows 7, to format the SSD (it should automatically select offset 64 when it 'sees' the SSD). The danger is, of course, that Win7 will default to some format that XP can't understand !

It's not a bad idea to set-up XP so that no 'write' operations are possible to the SSD at all (see below re: 'using EWF'))

EWF is likely a 'step to far' for most. Instead, write operations can be minimised by following the suggestions below. If you do install EWF remember to set it to 'save changes' during XP's 'shut down' ('power-off') routine otherwise you will never be able to install or change anything !

Make sure the SSD is seen in Windows XP as a 'Basic' disk and is set 'Active' (XP can be used to format the drive, but NEVER use it to 'create partition' on a SSD = remember it uses a 63 sector offset that will kill your access speed). Then use a 'system back up' / cloning application to copy your entire C: drive to the SSD

Finally, swap over the motherboard SATA cables (so the SSD becomes your C: drive & your old C: RAID mirror becomes the new drive D:)

How do I stop Windows thrashing my SSD ?

SSD's have 'write lifetime limits'. If you let it, Windows will keeping writing to your SSD at every opportunity it gets until it's totally worn out. Stopping Windows from doing this is not as easy as you might think.

1) Never allow Windows to use a SSD for a Virtual Memory 'paging file'
(if you don't have another disk that can be used for paging, then disable the whole paging system :- "HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", Find the key 'DisablePagingExecutive' and set to "1" .. and whilst you are at it, set the 'LargeSystemCache' to "1" as well (which should the improve performance of the kernel)),

2) Never allow Indexing Service to run on an SSD
(better, disable Indexing Service completely with "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cisvc", dword key "Start" set ':00000004')

3) Never permit Windows to 'auto-defrag'
(disable Background disk de-fragmentation with "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction\" REG_SZ key 'Enable' set "N")

4) Never let Windows 'auto-optimise' the boot files
(disable Background auto-layout with "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout" REG_DWORD key 'EnableAutoLayout' set "0" i.e. disabled).

5) Stop Windows constantly updating each files 'Last Access date'.
(to stop this useless re-writing of each files directory entry each and every time a file is read, go to "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem", create a New > DWORD Value "NtfsDisableLastAccessUpdate" and set the value data to "1" (= enable the disable :-) ))

6) If you intend to browse the Internet with your SSD equipped computer, you need to stop Firefox using the SSD
Since FireFox places just about all it's Temp data inside folders in your Profile 'tree', the best way to stop it writing to C: (the SSD) is to change the location of your Profile to D: (see below)

7) Move Temp and Tmp files onto another drive (eg D:\Temp)
This is not necessary if you move your user profile - see below - as the default Temp location is a folder inside your profile 'tree'. If you decide not to move your profile, right-click My computer for Properties, open the Advanced tab and click the Environment Variables button at the bottom - in the Environment Variables window, set a new location for the TEMP= and TMP= settings

8) Move your 'user profile' (your C:\Documents and settings\{user} folder tree) to another drive (eg D:)
IF you moved your old C: drive to D: this is 'relatively' easy (there will already be copies of the user profiles on D:)

9) Stop Windows wasting time 'prefetching' data. To disable the Prefetcher, Run > Regedit, and locate 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters'. Modify (or create) the EnablePrefetcher and set it's value to 0 and the next time you start your computer, the Prefetcher component won't start.

How to stop Firefox trashing your SSD

Firefox keeps all it's data in folders within your user Profile 'tree'. So the easiest way to stop FF trashing your SSD is to move your Profile (see below)

If you choose not to move your Profile, you can still stop most FF use of the SSD.

1) Move the 'cached' data folder to a different drive

Some recommend moving Fire-fox's cache to a RAM disk = this only makes sense if all you have is a RAM disk that is using the 750Mb or so of 'invisible' RAM (i.e. RAM not otherwise accessible to Windows) and is really too small to be of much use as a Paging file. Otherwise you should always use a RAM disk to expand Windows virtual memory (for sure assigning 'low' address space memory to a RAM disk is an insane trick that just means there is less RAM available for everything else and will simply result in a lot more Virtual Memory (i.e. hard disk) usage)
In the Firefox (web) Address box, type 'about:config' (without the quotes) and OK the warning. Right click on the page and select 'New' to add 'string' = "browser.cache.disk.parent_directory", hit OK Enter the file location you would like the cache to be in (eg D:\FF_cache\browser).To change the offline cache, add 'string' = "browser.cache.offline.parent_directory" hit OK Enter the file location for that (eg D:\FF_cache\off_line).Note that none of the file paths names include spaces. Exit all Firefox windows - on next restart it should start using the new location(s)

2) Firefox uses the 'SQL lite' database. It generates dozens of .sqlite files, however most are associated with specific 'options' that can be 'turned off'

For example, whilst running, Firefox is constantly updating it's URL Classification file (C:\Documents and Settings\{LoggedInUserName}\Local Settings\Application Data\Mozilla\Firefox\Profiles\urlclassifier?.sqlite). This is used with the "suspect site detect" option. To stop the file being updated, turn off 'suspect sites' :-
In Firefox, Tools menu, Options, Security. Un-check "Tell me if the site I'm visiting is a suspected attack site" and un-check "Tell me if the site I'm visiting is a suspected forgery".

How to move your 'user Profile'

Your Profile consists of your 'Desktop' (and everything on it), your 'My Documents' folders (and everything in them), plus your settings (eg 'folder view' etc.) and, most important of all, folders for every application you use (typically containing your custom 'settings' for that app. and where that apps writes it's 'Temp' files - which can consist of a few Gb's in size (eg Photoshop) or thousands of small files (eg Firefox cookies)).

Yes, MS provides an easy way to move your 'My Documents' folder, but no, this does not transfer your Desktop (or anything on it) nor any application data nor any Temp files

Ideally, you should move the entire 'C:\Documents and Settings' folder 'tree' HOWEVER it's much too easy to get this wrong and end up with a totally non-bootable system. I thus suggest you 'move' only your own user profile (that way, you can still log-in as another user when Windows decides to forget where you put your profile - or when D: fails to start at boot-up)

The following is based on MS Cannot move or rename Documents and Settings (see in 'More Information')

First, make a System Restore point

Then, whilst logged in as the 'user', open a CMD prompt window and type 'SET'. Make a note of the path for USERPROFILE - for example, 'USERPROFILE=C:\Documents and settings\MyName', then Log out of 'MyName'

Log-in using some Administrator level account. Right-click My computer, Properties, Advanced tab and click 'User Profiles' button. In the User Profiles window, highlight the 'MyName' user profile and click 'Copy To' and chose the new drive location (eg D:\Documents and settings\MyName)

Using the 'Copy to' method allows Windows to 'validate' that users profile. Alternatively, you can navigate to the 'C:\Documents and settings\MyName' folder and 'drag / copy' the entire folder to the new drive location (eg 'D:\Documents and settings\MyName')

Open a CMD prompt window and launch regedit (whilst you will need to do each 'search' and 'replace' one at a time, finding an actual Open Source 'registry tool-kit utility' to do the job takes longer)

Use the 'Find' pull down menu to locate the old USERPROFILE location '\Documents and settings\MyName' WITHOUT the drive letter (typically you will '%SystemDrive%\Documents and Settings\MyName' rather than 'C:\Documents and Settings\MyName')

Change '%SystemDrive%\Documents and Settings\MyName' to 'D:\Documents and Settings\MyName' (and 'C:\Documents and settings\MyName' to 'D:\Documents and settings\MyName'). Keep using 'Find Next' to locate the next '\Documents and settings\MyName' until, you have set every one to D:\...

At some point you will have modified the setting in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList. This is the most vital one for the MyName user.

SOME 'brain dead' software may have setup direct 'links' into your Profile using the it's DOS file name ! So now search again, this time looking for '\DOCUME~1\MyName' (and replace 'C:' or '%SystemDrive%' with 'D:' as above)

Close Registry Editor, log-off as Administrator, then log on as the MyName user. You should find your desktop looks exactly as you left it (you can open a CMD prompt and type SET to verify the path has changed)

If you get any sort of 'Profile' warning or error, log out immediately and check the Registry again using an Administrator account.

Once all looks OK, it's not a bad idea to keep the old profile as a 'back-up'. To do this, log-in as MyName and navigate to C:\Documents and settings\MyName. Right click the 'MyName' folder, and in Properties, General, set the 'Read-only' Attribute (must be a 'solid' tick, not a 'greyed out' one) and click Apply. When asked, confirm OK '... to this folder, sub-folders and files'. If Windows refuses to change the attribute (eg you get a 'Folder in use' error) then you have not correctly 'moved' the whole profile

Using EWF to stop all write operations on a SSD

To totally put a stop to all pointless writing to the hard disk (and especially the Registry) you can install the 'EWF' components from Windows XP Embedded & see what MS itself suggests. You should also check out my 'SETI Wall - using CF cards page.

This is NOT an easy task - further, since it's intended for 'static' systems (eg 'kiosk' style public information systems), your System becomes 'locked down' (so don't expect to be able to change ANYTHING).

This is fine for a Server / NAS (where the data disks are totally separate from the System disk) or for a PC you only use to browse the Internet, so long as your AV / Firewall (and any other software that you ever expect to update) was installed to D: (and so long as as you remember to 'save' anything you download to D:)

What else can I do to speed up my PC ?

A good way to start is with Microsoft's own TweakUI 'power toy'.
Another free utility is 'X-setup' available from MajorGeeks (with a free 'registration' key, XSA092-11TA9R-8K12YT)

1) You will already have turned off all the unwanted 'Services' (see my Windows XP Services page), including 'Themes', however there are lots of other 'fancy GUI' settings you can also turn off

Go to 'My computer', Properties, Advanced, Performance box, Settings button - Visual Effects, set 'Adjust for best performance' - and whilst you are at it, check the Advanced tab and make sure Processor scheduling & Memory usage is set for 'Programs'

You can further increase the amount of CPU time given to programs by tweaking the Registry value to boost the priority of foreground applications. Go to "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl", set key "Win32PrioritySeparation" to the dword value :00000026. NOTE this is a 'flag setting' NOT a 'value' (so setting it to '27' instead may actually make it worse)

NB. to disable the time-wasting desktop background image, just Right click on any open area of the desktop and select 'properties', 'desktop' tab and in the 'background' window, highlight 'none' & click "OK".

2) If you are creating lots of small files in the same folder (eg thousands of photos), you can reduce the new file creation overhead by 'turning off' the 'shadow' DOS 8.3 file name created for every new file since Windows has to 'look up' the DOS name of every file already in the folder in order to ensure the new file has a 'unique' 8 character name !

The DOS name is the first 8 characters from the 'long name' .. unless that would result in a 'duplicate' name. If that would happen, the last 2 characters are replaced with '~1' (unless that's also a duplicate in which case '~2' has to be used), and so on).

For this reason you should avoid using names like 'image-nnnnnn.jpg' since, after the first file (image-000001) gets DOS name 'image-00' the rest from image-000002 to image-009999 will have to be assigned names like "image-~1", "image-~2" and so on (only when 'image-100000' is reached will the DOS name 'image-01' be used). For this reason, names like "nnnnnn-image.jpg" are far better (or just turn off the DOS name creation)

NB. don't turn off DOS names if you expect to be using 'scripts', especially QBasic etc. that can only work with the 8.3 file names :-)

Go to "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem", find the key 'NtfsDisable8dot3NameCreation' and set it to "1".

3) If you have 4GB of RAM (and your motherboard does not allow a RAM disk to access the 'invisible' memory), then you might as well turn off the Virtual Memory system completely

Go to "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management", find 'DisablePagingExecutive' and set it to "1".

4) By default, Windows XP 'tracks' everything you do, including each applications use of the CPU and all access to the network and hard drive(s), and generates 'performance counters'. These are generally pointless and useless, especially if you have already turned off 'boot optimisation' etc.

To 'kill' the basic 'user tracking' - which is used to generate "Personalised Menu's" (and other cr*p like 'Recent Documents' etc) go to "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" find (or create) the dword "NoInstrumentation" and set it = "1"

To stop the actual 'counters', you will need to download the 'Extensible Performance Counter List utility', exctrlst_setup.exe, from the Microsoft web site. Let it install to the default location (c:\program files\resource kit\) and then run Exctrlst.exe.

Select each line in the 'Extensible performance counters' window and clear the 'performance counters enabled' radio button. You have to do this separately for each 'counter'.

Click "Next >>" (nav. bar, below left) for my 'How to avoid your PC being taken over' page

Next page :- Upgrading your PC