|
 | |  | | Jun30Written by:Jose-Maria Catena Saturday, June 30, 2001 6:00 PM  Virtual Memory
Windows 2000 does not allow disabling virtual memory. This is not a problem. I never recommend disabling VM, and Windows 2000 manages it much better than Win9X.
You can choose the disk volume where the VM file will be placed. Usually you will want a single file. If you have several disks, do not put it in the same disk that you use for the audio files.
The settings recommended by Windows 2000 are usually adequate, but some tweaking can prevent possible problems. When you are running Windows 2000, it will use the smallest swap file it needs. But if you do something that requires more RAM, Windows will enlarge the swap file to create memory headroom. If this happens when you're recording or playing back, you could experience real performance problems when Windows tries to enlarge the swap file. Therefore, set the minimum virtual memory size so that the swap file should never need to grow. 256 MB should be the smallest value you should set, but 384 to 512 MB are better. The maximum size should be set at a large value, for example 1024 or even more. There is not harm in having a large maximum value setting, just don't overfill your hard disk or the swapfile may be prone to fragmentation. If you wish you can set both values to the same large value, say 512 or 1024 MB, and Windows will never resize your swap file.
Disabling Visual Effects
Disable them! Go to Control Panel > Display > Effects Tab and disable "Use transition effects…". It's also a good idea to disable "Show window contents while dragging". Or better, download and install the latest version of TweakUI from Microsoft, and disable every kind of visual effects and animations.
As principle, when the CPU is busy with high priority intensive tasks (like audio processing) the "transition effects" should perform slowly, giving CPU priority to the higher-priority tasks like audio. But apparently someone at Microsoft thought that was not acceptable – that smooth visual effects were more important - so they decided to assign a higher priority to the visual effects task. Consequence: displaying a menu or a tooltip can steal time from more critical tasks. Disabling those effects helps ensure that a pretty drop-down menu doesn't cause a frustrating dropout.
Another thing I always disable are the system sounds. Go to Control Panel > Sounds And Multimedia and select "No Sounds". I also disable web contents in folders Control Panel > Display > Web. Another good idea is to avoid desktop background and themes and screen savers. Use the power saving options instead. If you do not need 24/32 bit color, use 16 bit color. Screen redraws and updates take usually less CPU time in this mode and your applications should look just fine with 16 bit color.
Bus Mastering ATA Controller Drivers
Windows 2000 will detect and activate DMA modes by default whenever it recognizes the disk controller as DMA capable for any DMA capable device connected. You can review the mode set or change it at Device Manager > IDE ATA / ATAPI Controllers > Primary (and Secondary) Controller > Advanced Settings Tab. It only allows to set "PIO only" or "DMA if possible" for each device, and indicates the currently active mode. But does not show the actual PIO or DMA speed.
If you do not see these settings, or you cannot enable DMA mode for a device that you know supports it (which includes all modern devices), your controller may not have been recognized properly by Windows 2000 and you may need to install specific drivers provided by the manufacturer. Of course, all Intel chipsets are recognized and perform very well. Mileage with others may vary very much. In particular, the VIA 686A performs particularly bad. At any rate, you need to have DMA enabled for all of your drives, especially your audio disks. This is absolutely essential for good DAW performance – a system which can stream 100 tracks of audio in DMA can grind to a halt at only 12 tracks in PIO mode!
Remember that special 80 wire ATA cables are required for UDMA66 or UDMA100 operation, and highly recommended even for slower modes. If you are still using 40 wire cables, change them immediately, even if you're running UDMA33. The extra 40 wires aren't attached to anything – they just serve as shielding between every other wire. The result is less interference and fewer errors - which means fewer retries and faster performance.
File I/O Optimization
Windows 2000 file I/O is very efficient, more than Win9X, and you do not need to tweak any special setting in the operating system – specifically, the VCACHE setting which was so important in optimizing Windows 98 systems is not needed in Windows 2000. All you need to do is properly format your disks. Use FAT32 with 32KB clusters when formatting volumes for audio files -
FORMAT [drive-letter]: /z:64
Disk performance statistics can be disabled: type "diskperf –n" at a command prompt. They will remain disabled after subsequent boots. To enable them back, type "diskperf -y". Disabling disk statistics may improve the file I/O efficiency a bit.
Power Management Options
It is better to avoid screen savers, and use instead the power saving modes for the monitor (Control Panel > Power Options). It is also preferable to not activate the automatic hard disk power down. Normally, start and stop cycles contribute more to hard disk wearing than "on time". Also disable any options that throttle back the CPU when it is unused. These settings are useful for battery powered devices but offer no benefit to an AC-powered computer.
Less is More
Windows 2000 runs a couple of services that many of us will never use. These steal a very little amount of CPU time, but can waste some memory and startup time. So if you do not need a service, it is a good idea to disable its automatic loading at startup. You can do so going to Control Panel > Administrative Tools > Services. Look for any unneeded service with automatic startup type, and change it to manual. With this setting, the service will not start automatically at Windows startup, but can be started if needed.
Typical services that might not be necessary:
- Distributed Link Tracking Client (networking, tracks file transfers across NTFS volumes for computers in NT domains)
- DNS Client
- IPSEC Policy Agent (networking, to manage IP security)
- Remote Registry Service
- Task Scheduler
Additionally, if you aren't using a LAN, you should be able to disable:
- Computer Browser (networking, to list computers in a LAN)
- DHCP client (networking, to get automatically the IP address and DNS from a DHCP server)
- TCP/IP NetBios helper (LAN)
CD-ROM Auto-Play
An important tweak in Windows 98 for DAWs was to turn off CD autoplay. The computer spends some amount of time determining if a CD has been inserted, and if it has, the computer then attempts to auto-run it. By turning off CD autoplay we were able to get improved performance and stability when tracking. This tweak no longer offers a significant performance benefit and we no longer need to make it. The only point to be made is that if you are recording or performing a critical task, just don't insert a CD into the drive, or it will get priority and probably stop your critical task.
Do Not Touch Default Priority Settings
You may have seen advices recommending an increase of the default priority settings. This is a bad idea. Don't do it.
Programs can set the appropriate priorities for any process or thread. Programmers require advanced skills in multitasking to analyze and design the appropriate priorities scheme for a given program. For example, in a DAW, the soundcard buffer events are of very high real-time priority, since if they are not serviced in few milliseconds, a dropout will occur. The file pre-read threads must have a lower priority, but still higher than window redraws, and so on. Even DskBench uses several threads with very specific priority each.
You do not have access to change the programmer assigned priorities. So some people have recommended increasing the default priority. Increasing the default priority only raises the priorities of all threads in the system for which the programmers did not assign a specific priority. This means that these threads do not have any special timing requirement, and you might make them take precedence over threads that require faster responses.
In the worst case, it may be true that many application programmers do not have the adequate skills to properly design the priorities schemes or even basic multitasking issues. But there is nothing you can do about that other than making things worse, unless you are truly an expert willing to spend some time face to face with SoftICE to improve someone else's binaries.
Software Compatibility and the WIN32 API
Windows 2000 shares the same basic API (Applications Programming Interface) with Windows 95, Windows 98, Windows Me and NT4: the WIN32 API. More accurately, the Windows 2000 version is a superset of the others.
I must add an important note here: the code that implements the WIN32 API functions in Windows 2000 is 100% 32-bit code. Just to support 16-bit legacy applications, there are also 16-bit libraries that just call to the 32-bit ones to perform the tasks. That is the right way to implement 16-bit compatibility, but, as you surely know, the 9X family worked in the opposite way: the functionality was written in 16-bit code, and the WIN32 API was implemented by 32-bit libraries which called the 16-bit ones! This means that Windows 2000 is truly a 32-bit OS, unlike the 9X family.
Anyway, there are very few compatibility problems in the WIN32 API other than very rare side effects of implementation differences. Most pure WIN32 applications will run on Windows 2000 as well or better than on the 9X OSs. If you find some of the few 32 bit applications that do not run fine on Windows 2000, you should contact the provider for an update.
Multimedia and Other Newer APIs
Windows 2000 is ahead of any other older Microsoft OS in all aspects. It includes or can host the newer APIs and most recent versions of any API available, and can run all of them better than any older OS.
I have read all kinds of statements like "Windows 2000 is not optimized for audio", "Windows 9X/Me is the best choice for multimedia", etc. Surely people saying that were confused by the fact that NT4, the predecessor of Windows 2000, did not receive adequate support for multimedia. But this is not the case in Windows 2000 at all. Keep in mind that DirectX 8 was targeted for Windows 2000 in first place, and that the first beta only ran on Windows 2000. Microsoft is clearly targeting Windows 2000 for multimedia.
Here's the deal. The key factors for multimedia applications - or any other applications requiring precise timing and massive I/O and processing - are the task scheduler latencies and I/O efficiency. In both, Windows 2000 beats any older OS hands down, in particular the extremely important scheduler latency, which is at least two orders of magnitude better than in the 9X family. Although the huge variety of hardware and software configurations out there makes very difficult to define figures valid in all scenarios, in the average PC Windows 2000 is able to meet worst case high priority task latencies close to 1 ms, while Windows 9X does not even meet 100 ms. Worst-case high priority task latency is the single most important measure of a systems ability to perform low latency real-time processing of massive data amounts.
Article Continues >> Tags:1 comment(s) so far...
Once again it's time to build a new "Roll Your Own" Computer for audio!
A lot has changed since I wrote the last installment of "Roll Your Own". The price of both CPUs and memor ... # Pete Leoni By TrackBack on
Wednesday, August 01, 2007 8:45 PM
|
| | | | | | | |
|
|
 | |  | |
| | | | | | | |
|
 | |  | | |
|