Section II- Further TWEAK/Optimization Enhancements
Why are we interested in this Optimization Stuff? Windows OS (operating systems) are never streamlined by default. Part of the reason is that the user base is huge, diverse and there are an unlimited number of PC configurations. No matter how well polished and optimized any Windows OS is, Microsoft must balance performance with ease of use and across-the-board compatibility. With Video Editing specific control parameters are utilized more than others. A server would utilize something different as well as one that did various multi-tasking jobs. Our goal is to optimize settings for our particular work application (editing / encoding, etc.). Listed below are further enhancements tested and deemed beneficial. Note most by itself, are not going to accelerate performance or improve stability by a large margin. However, the combination of these can add-up to significant improvements.
1.) Increase speed by tweaking prefetcher settings - This setting should already be optimized on most systems but it is a good idea to check. When Windows XP boots, it requests, or pre-fetches, everything it´ll need for the session at once. In other words it gives a shopping list to the File I/O system, which in turn brings in large chunks of data from multiple files in overlapping requests. Windows XP not only brings in boot and shell code, but device drivers and Registry settings. When Windows XP runs an application that has been run in prior user sessions, it pre-fetch´s as many of the memory pages it can from the files. With earlier versions of Windows NT/2000, the I/O system would be asked to load pages separately when needed at runtime (designated as demand paging), causing delays while pages were loaded. It is recommended that you have at least 512 MB of RAM when utilizing this. To check your settings :
1. Go to Start then - Run & type regedit ;
2. goto[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\EnablePrefetcher];
3. Check the value It can be 0-Disable, 1-App launch prefetch, 2-Boot Prefetch, 3-Both ("3" is recommended).
4. Reboot.
Note - I have actually seen some TWEAK programs and web sites say to set the value to 5 and there is no such thing ?? I assume it actually reverts to a zero value (disabled).
2.) Clean Your Prefetch Folder Out - This is unique for WinXP. All of us know that it is necessary to periodically clean the registry and TEMP files in Win9X/ME/2000/XP. After using XP for some time, the "prefetch" directory can get full of junk and hold obsolete links. Refer to Section V to learn more of what "prefetch" is. Too much junk can slow down your computer noticeably. I suggest: open C (system drive) go to the Windows folder and click on the "Prefetch" folder. Set the explorer view for details (to see all file information). Delete those junk and obsolete files and reboot. It is a good idea that you at least check this every month.
3.) Ultra PageFile Optimization - I get more questions and see more forum post about this than any other Windows adjustment. This is discussed in detail in the other guides I have written but I will review briefly what it does to make a point. I will also show you how to make a significant optimization that will be noticeable in lengthy video edits. First of all the paging file is a hidden file on your computer´s hard disk that Windows 2K/XP uses as if it were random access memory (RAM). The paging file and physical memory comprise what we call virtual memory. By default, Windows stores the paging file on the boot partition (the partition that contains the operating system and its support files). The default, or standard generic recommendation for the paging file size is equal to 1.5 times the total amount of RAM.
To make the ultra performance step, one must move the paging file to a different physical hard drive. When the paging file is on the boot partition drive, Windows is performing disk reading and writing requests for both the system folder and the paging file together. When the paging file is moved to a different drive, there is less competition between reading and writing requests. Moving the page file to a different partition on the same physical drive will not accomplish this as the disk sensor can only access one partition at a time. Some advocate utilizing a separate hard drive and partitioning part of it for the "Pagefile" only. However, utilizing this approach sometimes can get you back into the same fix we just discussed (if the other partition is utilized while swapping is taking place). This is why it is not advisable to place a "pagefile" on the same hard drive used to store video and audio (these also receive frequent accesses during editing).
Hard drives have become very cheap and most of us even have one or two smaller drives lying around. The ultimate is to take a spare drive and utilize it for nothing but the "pagefile". On most video editing systems the video/audio drives are attached to a RAID or controller card (IDE or SCSI). CD / DVD drives are usually attached to the secondary port on the MOBO and the system drive attached as Master on the Primary IDE port with nothing on the secondary (slave channel). The "pagefile" drive can be place here. The drive can be formatted and file placement will start (and stay) on the fastest section of the disk. It will also become less fragmented with use and access will only be dedicated for swapping. It is beneficial to have at least a ATA-33/66 HD to gain optimum access time (burst rate). If you can place the file on a SCSI drive - all the better.
There are a few things you need to know. If you completely remove the paging file from the boot partition, Windows cannot create a dump file (Memory.dmp) in which to write debugging information in the event that a kernel mode STOP error message occurs. This can lead to extended downtime if a debug procedure is necessary to troubleshoot the STOP error message. It is wise to keep at least 128 MB on the OS boot partition. Note the pagefile located on the other drive will receive first priority in the Windows swap scheme. Many posts recommend setting pagefile size to RAM time 1.5. I have found RAM X 2 optimum in XP (especially when using Adobe Premiere). Now how do you change / move your pagefile :
1. Log on to the computer as Administrator (if not already done).
2. Right click My Computer & go to Properties).
3. Click Advanced Tab , and then look for Performance section and the click Settings button .
4. Under Virtual memory, click Change .
5. In the Drive[Volume Label] list, click the new drive you want to utilize for the pagefile (Windows is usually installed on the drive C). Under Total paging file size for all drives you can note the value that is displayed next to Recommended & Currently allocated. I suggest you first take RAM X2 and consider this to be the new value to enter on the new drive.
6. Click Custom size, and then type RAM X 2 value in the Initial size (MB) box. Type the same value for the maximum in the Maximum size (MB) box, and then click Set . It is best to have the Initial and Maximum size the same this way Windows will map out one size on the disk and not keep resizing (with use) and cause more fragmentation.
- In the Drive[Volume Label] box, click the OS drive on which Windows is installed (usually the drive C), and repeat the steps above: Remember if C: has an initial size of less than 126 megabytes, the system may not be able to create a debugging information file if a STOP error occurs.
- The changes you have made will require you to restart your computer before they can take effect and the total currently displayed will be updated to actual..Click OK , click OK , click OK , and then click Yes when you are prompted to restart the computer.
4.) Clear Pagefile on Shutdown - This optimization is noted in the original XP guide (Item #8) but bears repeating while we are on the subject of pagefiles. When starting up a new editing session I like to start with the pagefile clear. This way it doesn´t become as fragmented - stays contiguous. This can be a big help before intensive editing sessions. In Win 2K this required a registry change but now it can be done easier in XP (note the registry change is still possible). Go to Start > Control panel > Administrative tools > local security policy > Local policies > security options then fine the option > "Shutdown: Clear Virtual Memory Pagefile" right click then Properties + enable and then hit Apply button. Please note this will increase your shutdown time especially if you have a large pagefile like I do (2 gig = RAM X2).
5.) Turn off Indexing to speed up Drives in XP - This one is often overlooked and is a common reason why hard drive performance appears sub-par. Windows XP keeps a record of all files on the hard disk so when a search is done on the hard drive it is done faster. There is a downside to this because the computer has to index all files, it will slow down normal file commands. Turn this off .
1. Open my computer
2. Right click your hard drive icon and select properties.
3. At the bottom of the window you´ll see "Allow indexing service to index this disk for faster searches," uncheck this and click ok. A new window will pop up and select apply to all folders and subfolders. It will take a minute or two for the changes to take affect. Do this for all drives and should enjoy faster performance on each.
6.) Disable - "Show Windows Contents While Dragging" - Here´s a funny one but I have seen this (also had reports) impact Premiere. It appears that over time Premiere can get bogged down if the setting "show window contents while dragging" is enabled. To insure this is disabled go to Start then Settings then Control Panel then Display then click on the Appearance tab and hit the Effects button - look for "show windows contents while dragging" is NOT Checked.
7.) Disable the automatic updating of file access time - Increase the speed of every disk operation as this it will avoid updating access time every time a transfer occurs. Naturally this only works for NTFS drives. This was item #18 on the previous TWEAKS guide.
Go to Start > Run > regedit > Enter Navigate to HKEY_LOCAL_MACHINES\System\CurrentControlSet\Control\FileSystem. Add a new Dword (if missing) and name it NtfsDisableLastAccessUpdate. Set value to 1 to delete this feature.
While we are on the disk monitoring subject item #21 (in the original guide). Win XP like Win2000 is set to collect physical drive data. Most don´t need this as it consumes extra drive transfer time. To disable the disk performance counters: Go to->Start->Programs->Command Prompt Now type in: diskperf -n then reboot. Note there is a space between the "f" and the dash (-).
All this Performance monitoring is mostly done when logged in as Administrator. If one changed the default login to example a Power User, the monitoring would be lowered automatically.
8.) Setting Priority for Programs
Priority, for those of you not familiar with this term, is how Windows determines which programs should get processor time, and how much to give each one. There are six priority settings (in the background it is much more complicated and tiered than this): Real time, High, Above Normal, Normal, Below Normal, and Low. Real time is actually a misnomer, and is should really be called Ultra High because of the way the computer manages priorities.
After loading a high intensity program such as Premiere. You can force it to a higher priority level within the Windows Control tier. To do this hit "Cntr-Alt-Del" and the Windows Task Manager will appear. Select the Processes Tab. Look for your program - in this case Premiere.exe. Right Click on it and select Set Priority - then select a higher level from normal. I often set Premiere to something like High most of the time. I´ve even tried Real Time a few times but not sure it is any better or not. If you run another program while leaving Premier running you may want to then switch Priority lower to give the other program more weight, etc. You can switch as often as you like but realize that the setting will return to it´s normal value with each new start-up of the program. The only caveat to this involves is the interaction of other programs and interfaces. If stability is lost with these other components you can always go back to the original setting. An example of on-line switching would be if you switched to a software or hardware encoder, etc.
I should also mentioned that (sometimes), a user attempts to set a program to the Real Time priority but fails and the program defaults to the high priority class. The reason for this is that the specific program is lacking a special security token allowing it to run at the Real Time Priority class.
9.) IoPageLockLimit
This can be the "Mother of All Tweaks" both good or bad. Therefore, we will have to dedicate a little extra space (verbiage) here for this one. To do this TWEAK it is not hard and IT IS reversible. First let´s review what this thing does : Windows limits the amount of memory to be locked for I/O operation.
By default, this registry limit value is 0, which is actually 512 kb. This indicates to the system that it should use a built-in algorithm to determine the amount of memory to utilized (i.e. 512 kb). Changing this can force core systems to be kept in memory and not paged to the disk.
A machine with heavy file I/O traffic and a fair amount of unused physical memory could possibly use this tweak. The reason I list the word "possibly" is that a number of factors could go in to this. Not all systems experience the same amount of file I/O operations, not all systems experience disk I/O bottlenecks in the same way, processor power (performance) varies, disk access & transfer rate, software programs operate differently and memory size all play a part in overall performance. This is why I did not include this TWEAK in the original WinXP guide - only commented in the section of ones that did not work (needed time to test).
I have seen software test emulation results indicating a 40% performance benchmark with Premiere. Many variables go in to this including the specifics of the machine used so don´t get too excited. Things like improving "pagefile" transfer (some of the previous tweaks noted) can minimize the improvements, etc. Given there are so many factors involved I will not even list the setting I use. I would not even consider trying this if your total RAM is less than 512 MB. Second I do not believe one can get "hair raising" speed increases. Rather one might actually get a little speed and much more stability after long duration of operation with intensive programs such as Premiere (known for it´s poor utilization of memory). We also have to be sensitive to when tracking performance with editing programs that utilize memory for things like real time buffers, etc.
Let´s briefly discuss how one might test this TWEAK and then actually list how to make the change. To properly test this, one should have all the other OS optimizations completed, hard drives optimized and system set with fresh re-boot (hopefully you utilized clear pagefile). Now open an intensive program such as Adobe Premiere. Build a test project and utilize lot´s of transitions, filters, etc. Force some items to require rendering. Save project before you push things too hard - this avoids having to rebuild from scratch again. Export part of the timeline to another codec - log time it takes to do this. Look at responsiveness and stability while doing all things. Force some items to require rendering, etc. Do whatever you can to bog the system down or crash it. Things like scrubbing fast, numerous filters or transitions, etc.
Before we begin remember - as with all registry edits be careful and be sure before finalizing and exiting. Now go into regedit and look for HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control SessionManager \MemoryManagement. When you select the MemoryMangement folder look on the right half of the window for IoPageLockLimit. It may not be there (e.g. if you have not built it previous or utilized a software TWEAK program, etc). If it is not there, right click in the right window area and select new. Then select new DWORD Value. A box will come up with cursor blinking in it. In it type IoPageLockLimit - just like I have typed and hit enter - it should now be in the list on the right side window. Now whether you already found it or just created it - right click on IoPageLockLimit and select Modify. A gray box will come up and have the name (IoPageLockLimit) in the window and a box for value data. This is where we will make value entries. You should note that there are two different units or bases you can use. One is hexadecimal and the other is decimal. When you add values you should first select decimal not hexadecimal i.e. Click the Decimal radio button. This value is the maximum bytes that can be locked for I/O operations. A value of 0 actually defaults to 512KB. It is best to set units that are divisible by 128. You can move in increments of say 1024 or if you are real anxious in increments of 16384. As a good rule you should also not set a value that exceeds total RAM (in MB) times 128. The highest value I have seen utilized is 65536 (decimal value). This equates to 64 MB of RAM utilized (locked). After hit OK - exit regedit and you will have to and reboot for effects to take place.
Now the fun begins - call up your test project - do stuff and note differences. You may have to increase or decrease values and retest. When making changes try increments of 1024 or 2048. I would not go over 64 MB (65536) even if you have RAM > 768MB. Maybe - higher if you had > 1 GB. Anyway forward experiences if you find success !!!!