DRVSPEED is rather simple drive speed test. It however measures all pertinent aspects of drive data transfer rate. Usually most drives have about 50% higher DTR at outer cylinders or start of the drive than inner cylinders. Therefore measuring both DTR at start and end of drive gives more realistic view of performance. Another important variable is the number of sectors that are read with one BIOS call. Usually this is determined by cluster size or disk cache. The most common value is 16 sectors or 8KB. The speed is often limited by the speed of interface. ISA hosted adapter has normally a speed limit of about 2MB/s. Therefore it is valuable to measure interface speed by repeatedly reading the same area from cache memory of the drive. Most drives have a cache memory that has ample speed reserves. That is why one is able to measure as high as 12MB/s with modern IDE drives by reading their cache. Healthy sign is when "cache+bus+BIOS speed" is much higher than "Start of disk" and "End of disk" values. Then one can be sure that the values represent drive performance and are not limited by interface. The source code is included. Because I can't think of anything better, I leave it under GNU GPL, which means that you can do anything with it except not sell. If you port it to other OS, I would like to see the ported code. In DOS measuring CPU load is not sensible, but in "real" OS it is valuable. Well, I ought to port this to OS/2 myself, maybe some day.. Version 1.1 adds test for CD-ROM speed. MSCDEX must be loaded. Also picked one value to display as a result. The idea with DRVSPEED is to show detailed results, but in some cases one value is better. About testing ============= Drvspeed might look like not so usefull test program, but once you get a grip about meaning of all those numbers, you will be able to make some surprising interpretations. It often helps to import the numbers to a spreadsheet and make a graph of them. Below are two interesting examples of interpreting the results. Usually the results are not this exciting, but these examples demonstrate the possibilities. Quantum Bigfoot 1.2GB ===================== Testing disk 2 (CHS 623/64/63) BIOS Data Transfer Rate Reading 24192.0KB blocks (about 20 promilles of disk space) Sectors/ Start of disk End of disk Average cache+bus+BIOS speed record KB/s KB/s KB/s KB/s 64 1589.5 2975.0 2282.2 9368.0 32 5644.8 2995.2 4320.0 8467.2 16 5718.1 3015.7 4366.9 6879.6 8 5718.1 3015.7 4366.9 4402.9 4 658.1 2975.0 1816.6 2701.2 2 736.3 2636.5 1686.4 1380.2 Average 3344.2 2935.5 3139.8 5533.2 This drive has an average reading speed of 3139.8KB/s =========== Testing disk 2 (CHS 623/64/63) BIOS Data Transfer Rate Reading 24192.0KB blocks (about 20 promilles of disk space) Sectors/ Start of disk End of disk Average cache+bus+BIOS speed record KB/s KB/s KB/s KB/s 64 5718.1 2975.0 4346.5 9368.0 32 5644.8 2995.2 4320.0 8307.4 16 5718.1 2975.0 4346.5 6773.8 8 5718.1 3015.7 4366.9 4402.9 4 658.1 3015.7 1836.9 2701.2 2 784.8 2701.2 1743.0 1375.9 Average 4040.4 2946.3 3493.3 5488.2 This drive has an average reading speed of 3493.3KB/s =========== =============================== Test was run twice because some values were suspiciously low, but they were all on outer tracks of the disk and that leads to concluding that they are caused by thermal calibrations. Bigfoots are 5 1/4" disks and because of big diameter the heat has much bigger effect than usually. The results are quite good, but this is certainly no AV disk. Fujitsu M2954SAU ================ This is a very fast SCSI disk with MR heads and 7200 RPM. Despite the nominal 10MB/s speed of fast SCSI, the manufacturer claims continous DTR of 9 to 14MB/s. Fujitsu was connected to SC-200, NCR53c810 adapter in a P120 machine. The slower inner track DTR levels at about 6.3MB/s, so that must be tha fastest possible speed. Outer tracks show no leveling and 10MB/s fast SCSI ought to cause slower raising of DTR after about 6-7 MB/s. This drive alone can saturate fast SCSI and should show better results with Ultra SCSI version. Testing disk 2 (CHS 1022/132/63) BIOS Data Transfer Rate Reading 79002.0KB blocks (about 20 promilles of disk space) Sectors/ Start of disk End of disk Average cache+bus+BIOS speed record KB/s KB/s KB/s KB/s 128 8032.6 6362.1 7197.4 3834.2 64 7335.9 6390.4 6863.1 3844.5 32 6224.4 6334.1 6279.2 1919.7 16 4410.5 4593.7 4502.1 960.5 8 3046.3 2995.5 3020.9 480.1 4 1862.5 1834.0 1848.2 240.1 2 1058.0 1001.3 1029.6 120.0 Average 3989.6 3858.2 3923.9 1260.8 This drive has an average reading speed of 3923.9KB/s =========== It is widely known that SCSI commands are complex and processing them is slow. IDE commands are simple and they are processed about 100 times faster. Fujitsu is fast but only if reading many sectors per BIOS call ie. fewer commands are processed. Contrast this to a IDE drive with faster than average imbedded controller, ST32140A. Testing disk 0 (CHS 525/64/63) BIOS Data Transfer Rate Reading 20160.0KB blocks (about 20 promilles of disk space) Sectors/ Start of disk End of disk Average cache+bus+BIOS speed record KB/s KB/s KB/s KB/s 128 4420.6 2237.3 3328.9 10791.5 64 4420.6 2237.3 3328.9 10483.2 32 4420.6 2237.3 3328.9 9916.5 16 4420.6 2237.3 3328.9 8949.1 8 4420.6 2237.3 3328.9 7488.0 4 4420.6 2264.9 3342.8 5733.0 2 3597.2 2251.0 2924.1 3744.0 Average 4283.4 2244.2 3263.8 7719.0 This drive has an average reading speed of 3263.8KB/s =========== Only when reading 2 sectors per BIOS call, there is noticeable effect of command processing time. We have now base data for continue testing with more real world setup. To test file system read speed we throw about 100MB to bit bucket with "copy /b d:\100MB.fil nul" and take time. The results were: DTR time MB/s s OS/2 7,09 12,91 OS/2, HPFS 6,12 14,96 NT 3.51, HPFS 4,84 18,92 NT 3.51, NTFS 4,81 19,01 NT 3.51 4,56 20,05 MS-DOS 7.0 7,37 12,42 MS-DOS 7.0, 5,03 18,18 smartdrv Win95 2,44 37,57 MS-DOS 7.0 means Win95 booted straight to command line. Then I loaded smartdrv for second result and third is normal Win95 booted to GUI. Filesystem is FAT if not mentioned. Partition is 2GB and empty except for test file, no other partitions defined. Now one can guess how many sectors per BIOS/driver call each environment reads. Win95 propably reads 8, NT and Smartdrive 16, OS/2 32 or 64 depending on filesystem. With FAT bare MS-DOS 7.0 and possibly also OS/2 depend on cluster size to determine number of sectors per read call. With Win95 even fastest SCSI drives are markedly slower than normal new IDE drives and even with NT there usually is no speed advantage. With OS/2 only a small fraction of speed is wasted and with a bit slower SCSI disks there should be no loss. The sad part of the story is that only fools and those few who really need the capacity options of SCSI buy SCSI for Windows use, keeping it rare and expensive. Another sad thing is that the fastest drives are sold with SCSI interface even when IDE would allow faster speeds in normal conditions than SCSI. Using wide and/or Ultra SCSI doesn't help slow command processing at all, it just raises upper limit for DTR and need for more sectors per read call. RAID is an another matter, but hardly common on desktops.