Windows NT 4.0 Workstation suffers from poor disk performance compared to Windows 95. I recently moved from SCSI to EIDE for disk access on my main development computer. While in the past SCSI may have been faster than IDE, it is now much slower unless you possibly go to the Ultra/Wide mode which I have not tested. Previous tests I had run on SCSI drives showed little difference between Windows 95 and NT. Now that I have upgraded to an advanced Ultra ATA drive, Windows NT is slower by quite a bit. Here are the parameters and results of the test.
My system runs on an ASUS TX97 motherboard, 166 MHz Pentium, 32 MB RAM and Quantum 6.4 GB Ultra ATA drive. Windows 95 is booted from a 509 MB FAT partition. Windows NT is booted from a 2047 MB NTFS partition. There are more FAT drives in the extended partition. The standard drivers installed with Windows are used. Windows 95 properties were set for Desktop Computer with full read-ahead optimization.
The program I use to test disk speed is a custom Delphi implementation. It writes 512K buffers of data to a file it creates in the root directory at full speed until the disk is full and then reads 512K buffers from the same file. I have the option of canceling the write operation at smaller file sizes rather than going up to all the free disk space. Timing is done using the standard Windows API timing functions. The code used in this program is available at the end of this text.
This test will fill the disk cache and keep it full when in the write mode. Thus, the writes will occur very fast until the cache fills and then will proceed at a slower speed until the disk is full. Once the cache is filled, the program will write into the cache at about the same speed as Windows is able to offload it to the disk. It is very important to let the program continue to write for a while after the cache is full. The write speed will be in error by a certain percentage and will be small if the size of cache memory is much less than the amount of data written. When the write test finishes, the time accumulated at this point will be smaller by the amount of time it took to fill the cache at the start and also by the time to finish writing out the data in the cache. In a 32 MB system, the cache will be on the order of about 8 MB and will write out in about 1 or 2 seconds. If the disk test lasts over 100 seconds, as it does in these tests, the accuracy will only be off by 1 or 2 percent.
The read part of the test starts when the disk is full or when I cancel it by pressing a button on the program form. The read timing starts when the cache is still writing data out to disk. For a short while at the start of the read test, the cache will be writing and reading at the same time. This will slow the read operations down for a few seconds while the cache is emptied. Thus the read timing will also be in error by a few percent.
Here are the results for file sizes of about 480 MB:
OS Drive Op KB/Sec
95 FAT W 5599
NT FAT W 4439
NT NTFS W 4945
Windows 95 writes about 26% faster and reads about 77% faster on FAT volumes. The performance of NT on NTFS volumes is not much better. How do these results relate to use of computers in real applications? If you mostly do word processing or spreadsheets, you are not being limited by disk speed. These applications will load most files in a fraction of a second and will write them entirely to the cache for background writing to the disk. The only cases where you will notice these speed differences is possibly when loading a program, switching from one large program to another (using virtual memory to swap large chunks of memory to or from disk) or when using multimedia applications to edit large images or movies. A file server should not have problems unless it is under a very heavy load. An ordinary 10 MBPS Ethernet connection will be limited by the speed you can pump data out the wire. The new 100 MBPS Ethernet may suffer if the disk doesn't run fast enough, but again, only if the server is under load.
It is possible that Windows NT 4.0 Server may have some optimization that speeds up disk access. If anyone wants to perform tests on a server system, go to this section of my web page and you can read about disk testing and download the program with source.