tjr@cbnewsc.att.com (thomas.j.roberts) (03/02/91)
Here are the results of my "Great 386 PC Hunt". I went to a dozen suburban Chicago computer stores, and ran a benchmark on every 386 box I could find (and a few others). Two stores clearly stand out as superior to the others: Soft Warehouse in Schaumburg, and Elek-Tek in Willowbrook. They both have large selections on computers and accessories, and have competetive prices (comparable to mail-order). Interestingly, there is a 20 MHz 80386SX which outperforms a 33 MHz 80386 on this particular benchmark. You cannot determine the performance of a system from merely its processor and clock speed. Also, cost DOES NOT correlate well with performance (if anything, the correlation is NEGATIVE, but that is primarily due to IBM machines). Note that cost and performance are NOT the only relevant criteria in choosing a computer! Quality and reliability are also important, and future upgrade-ability is also a consideration, as are size and appearance. Note that benchmarking is VERY application specific. I made a benchmark out of the real-time bottleneck in my music application. This benchmark is of considerable interest to me, but it may have only moderate correlation with the performance parameters of interest to you. Caveat Emptor. The benchmark times 100,000 calls of the real-time interrupt of my music synthesizer (converted to a subroutine, I/O removed). It was run 3 times on each computer, with 0, 10, and 30 notes active. Note that if you rank the machines by their 0-note times, and then by their 30-note times, some differences will appear. Benchmarking is VERY application specific! I have been using the 30-note times for comparison. For each machine, the location is given in parentheses; if you are not in suburban Chicago this will mean little (and also if you do not know who Jerry and my Mom are!, etc.). For 386 boxes, the type is the clock speed; for others it is the type of processor (8086 = 8 MHz, V30 = 8 MHz, 286 = 16 MHz, 486 = 25 MHz; SX16 = 80386SX 16 MHz, SX20 = 80386SX 20 MHz). Elapsed Time (Sec.) # Type Description 0 10 30 --- ---- ----------- ------------------ 1 8086 AT&T PC6300 (Jerry's) 145.4 171 222 2 8086 AT&T PC6300 (Mom's) 104.1 130.3 182.7 3 V30 AT&T PC6300/V30 (Home) 100.6 121.8 164.4 4 286 AT&T 6286 WGS (Ken's) 52.4 61.4 79.2 5 SX16 sysdyne 386sx-5 (Computerland Naperville) 42.8 49.5 63.1 6 SX16 AST Premium 386SX/16 (Micro City) 32 37 48.3 7 SX16 NEC PowerMate SX Plus (Micro City) 49.2 55.5 68.4 8 SX16 AT&T 6386/SX WGS (my desk) 35.5 42.2 55.6 9 SX16 AT&T 6386SX/EL WGS (Mike's) 43.8 51.4 66.7 10 SX16 IBM 55SX PS/2 (Computerland Naperville) 64.6 71.7 86 11 SX16 Packard Bell FORCE 386X (Farnsworth) 42.4 49.1 62.4 12 SX16 Hyundai super-386SE (Farnsworth) 48.9 57.2 73.7 13 SX16 Magnavox HeadStart 500 (Soft Warehouse) 39.3 46.8 61.6 14 SX16 HP Vectra QS/16S (Elek-Tek) 31.6 37.7 51.3 15 SX20 AST Premium II 386SX/20 (Elek-Tek) 25.7 29.6 37.6 16 20 IBM PS/2 model 70 386 (Elek-Tek) 27.1 31.6 40.4 17 20 Hyundai Super-386C (Farnsworth) 28.1 32.9 42.5 18 20 AT&T 6386 WGS (Library) 33.3 39.1 50.5 19 20 Compaq 386/20e (Micro City Naperville) 20.3 23.7 30.4 20 25 Dell 325D (Soft Warehouse) 17 19.8 24.9 21 25 CompuAdd 325 (CompuAdd Superstore OakBrook) 34.8 37.5 43 22 25 NEC Powermate 386/25 (Micro City Naperville) 25.1 28 33.2 23 25 Compudyne 25/386C (Soft Warehouse) 16.6 19.2 24.5 24 25 DOSTECH 386 (DosTech) 24.9 28.3 35.3 25 25 CPI 386-25 (Computer Needs Lisle) 19.1 23.2 31.2 26 25 DTK 386-25 (PC Warehouse Naperville) 19.6 23.3 30.7 27 25 MicroStar 386-25CA (MicroStar Downers Grove) 18.1 20.8 25.9 28 25 HP Vectra 386/25 (Elek-Tek) 16.6 19.3 24.8 29 33 AT&T 6386E/33 WGS Tower (Product Center) 14.7 16.8 20.7 30 33 compuadd 333t (CompuAdd Superstore OakBrook) 38.4 40.5 44.5 31 33 Packard Bell FORCE 386/33 (Farnsworth) 14.8 16.7 20.8 32 33 ALR Business Veisa (Soft Warehouse) 22.5 27.1 36.1 33 33 Packard Bell Force 386/33 (Elek-Tek) 14.3 16.5 20.5 34 486 ALR 486 (Soft Warehouse) 8.2 9.4 11.8 35 486 MicroStar 486 (MicroStar Downers Grove) 7.9 9.1 11.4 Throughout this effort I checked for viruses on my diskettes at every store (McAlfee's pro-scan). I found none. No machines refused to run my benchmark or gave abnormal results, except: A Packard-Bell Force 386/33 refused to read my 3.5" diskette, but worked fine on my 5.25" diskette; other machines used the 3.5" diskette afterward without trouble; no viruses found. An Epson Equity 386/25 had great difficulty in booting, and fell back to 8 MHz. It ran the benchmark at 8 MHz, but the results were so out of range that I omitted them. I also ran a VGA test program on some of these machines; I kept no records of the results. All displayed it well, with performance on the 386/386SX/486 boxes equal or better than my 6386/SX WGS machine (#8). With a magnifying glass you can see the individual colored dots of the monitor. It is clear that the .25 mm dot-pitch monitors have smaller and closer dots than the .31 mm monitors; .4 mm monitors are MUCH fuzzier, and to me are unsuitable. So - which did I buy? - None, so far. I am still agonizing about the trade-offs among price, performance, and quality/reliability. SUGGESTIONS ARE WELCOME!!! About the benchmark: the benchmark consists of the real-time interrupt from my home-brew music synthesizer, with all I/O operations removed. This interrupt normally runs every 2 milliseconds, and interprets a threaded-code description of how to evolve each of 30 notes currently playing on the synthesizer hardware. The interrupt was converted to a subroutine, and the time for 100,000 calls is recorded. The calling code is written in Turbo C++ 1.01, and consists of the obvious for() loop with a long counter. The interrupt subroutine is 8086 assembly, highly optimized for speed on an 8 MHz V30 (# 3 on the list above). It can handle up to 30 notes simultaneously. There is no loop in the code - each channel of the hardware is represented by a struct which contains the address of the routine to express its sound; after completion it merely increments the pointer and jmp-s to the next-channel's routine. There is a dummy 31-st instrument whose routine dismisses the interrupt (in the benchmark it is the subroutine return). Note that there are always 30 channels (plus the dummy 31st), and that silent channels execute 2 instructions (add di,cx; jmp [di].addr) That is, if all 30 channels are silent, the first 30 [di].addr-s will point to the above 2-instructions; the 31st will point to the subroutine return code. In the real synthesizer, most active channels spend most of their time waiting; in the benchmark, active channels execute an opcode every 2ms interrupt (this is determined by the way the instrument is defined). Running the benchmark 10 times on my computer at work (# 8 above) consistently gave results within +-0.1 second. Note that an elapsed time of 200 seconds means that the real-time interrupt would eat up 100% of the available CPU (actually more, since I removed the I/O operations). Tom Roberts att!ihlpl!tjrob TJROB@IHLPL.ATT.COM