Notes on Using AutoCad with Windows 3.0 Larry Leuallen 7/20/90 I have just completed a series of tests to see how well AutoCad works inside Windows 3.0. As with any sort of benchmarking, the results should not be taken too seriously outside the test conditions. There are so many variables and parameters in software, hardware, and configuration issues that extrapolation to other systems is folly. However, this series of tests may point the way and eliminate some blind alleys if you wish to persue the matter. Testing Procedure All tests were performed on a 33 Mhz 386, 8 Mb extended RAM, 387-33 coprocessor, 200 Mb IDE 15 ms hard drive, plain vanilla VGA, running AutoCAD 10 c2a. I don't believe AutoCAD 386 will run under Windows 3.0 due to VCPI incompatibilities, but I may be mistaken as I do not have the software to test. I know that extended AutoLisp will not work under windows due to these incompatibilities nor will the extended memory managers such as 386Max, Cemm, and Qemm. I talked to 386Max and they expect to have a compatible version (not 5.0) this fall/winter. It will greatly alleviate memory problems. Windows was operating in 386 enhanced mode with all resources given to Acad (all memory locked to Acad and exclusive execution selected in Acad's .pif file). All testing was done using the BM-ACAD benchmark, which is available on the GCAUG BBS. This is a script that performs a series of basic drawing/file/lisp operations and times the results using a small, medium, and large drawing file. Since all factors are integrated into Acad, it gives a pretty good indication of how various parameters such as disk caches, ram drives, etc. affect the overall picture. For example, one disk cache may test out 300% to 1000% better than another using disk cache benchmarks. In actual practice, under Acad, the gain may only be a couple of percent. Tests were often done multiple times on the same configuration in order to trap errors and confirm findings. The results of all the tests are not included here as they would be boring. Tests were first performed on universal parameters to optimize them and then they were used as standards for the major tests. By universal parameters I mean things such as Retain Video Memory in the .pif file. Once its effect was determined the optimal setting was used from then on. The major tests involved the use of extended memory by Acad, the effect of a disk cache, different types of disks caches, and the use of ram disks. A summary of general overall times, under the benchmark, for different situations on my system is given below. Best time straight DOS 8 min. Best time Windows 9 min. Typical times with cache and ramdisk. Win. 9 to 11 min. Typical time with cache and no ramdisk. Win. 14 to 16 min. Typical time no cache and no ramdisk. Win. 32+ min. Typical time 16 Mhz 386 2 Mb (1 Mb in cache), 24 min. 19 ms drive. DOS As above (16Mhz), no cache. DOS 39 min. Summary of Findings 1. Acad under Windows is invariably slower. The range is from 10% to 50% depending upon extended RAM available and how it used. Although Windows "breaks the 640 barrier," it does not do so for Acad because Acad is not a Windows' program. 2 The main problem is that Windows "steals" precious low RAM. This means that the I/O (you can find the amount available using the status command in Acad) will be low. Typically it is from 30k to 71k on my machine. Non-windows I/O readings are in the 135k to 143k range. Reasons for this are as follows: (A) Windows overhead. (B) 386Max, Cemm, and Qemm are NOT useable under windows. All devices take away from low RAM instead of being able to be tucked away into high RAM. Depending upon devices used, a Windows configuration chkdsk will report between 507k to 565k. (I use no ADI drivers). Using 386Max in plain DOS, the figure is 598 to 600k. 3. The low I/O is not compensated for by being able to use large amounts of Extended I/O. In fact, Extended I/O is the least efficient method of using the extended RAM. In test ONE using 3 MB of extended RAM available to Acad resulted in 30k I/O and 2528k (overhead losses) Extended I/O. The overall time of the test was 14 min. 13 sec. In test TWO, not using the 3 MB of extended RAM, resulted in 71k I/O (lower overhead losses). The overall time of the test was 15 min 7 sec. That 3 Mb RAM brought only a 6% performance increase. Both tests with Smartdrive set to 2 Mb. and otherwise identical except for the extended RAM. No, you can't have your cake and eat it too. No way to have the 71k I/O with the 2528k Ext. I/O. Using Ext. I/O decreases the amount of regular I/O. 4. The best approach is to use a disk cache and ram drives. A disk cache is almost mandatory as it will speed up other window applications. The questions are: which disk cache and the size allocated. To use Smartdrive (it comes with Windows) or some other compatible cache? I had three choices: Smartdrive, PC-Kwik, or Hyperdisk. PC-Kwik was quickly eliminated as I could not get it to install and leave more than 525K. Acad would not run with this low RAM, even though the cache was otherwise compatible with Windows. Hyperdisk is shareware (C'serve) and I had seen a very favorable report comparing it to Smartdrive under Windows. However, this benchmark was done using a disk cache benchmark. And further, Hyperdisk's best results were obtained using Staged Write. This is a delayed write to the hard disk and can be dangerous - loss of data if you screw up with a write pending. All tests with Staged Write off. I ran four tests. Two with Smartdrive set to 1 Mb and 2 Mb respectively and two with Hyperdisk set to 1 MB and 2 Mb. At 2 Mb : Smartdrive 14 min 12 sec Hyperdisk 14 min 22 sec At 1 Mb: Smartdrive 15 min 04 sec Hyperdisk 14 min 51 sec The difference in times is about 1%. Not enough to be concerned about. Caution: In configuring Smartdrive, be sure to configure a 2 Mb drive as: [path]smartdrive.sys 2048 2048 The second number refers to the minimum size that Windows will reduce the drives size to if it wants the memory. If you leave this blank it seems to default to zero and Windows seems to want most of the memory even on my 8 Mb system. The net result is almost like no cache at all as I found out when I initially left the second number out and the benchmark time jumped to 32 min. Also if you let Windows install Smartdrive, you might get a setting like 2048 1024. This if effectively a 1 Mb disk cache. A note about buffers. Since buffers and a cache are essentially doing the same thing (except the cache is much more sophisticated), the buffers settings should be reduced. Smartdrive recommends 10 and Hyperdisk 5 so that is what I used in each case. The difference in buffers could account for the difference in benchmark times. 5. Ram drives will really increase performance, but you need a lot of memory to use them. Four Mb under Windows is not sufficient as you should have about 2 Mb for Windows and one or two Mb for a cache. There is little performance penalty for a one Mb disk cache for the maximum size of drawings used the Bm-Acad benchmark (291k), so a one Mb cache is O.K. If your drawings are typically larger than this a 2 Mb cache may be better. If a one Mb cache is selected you may use one Mb as an overlay ramdisk. You would have to balance this against any performance loss for Windows' applications as this one Mb is lost to them. For Smartdrive configurations I used Windows' Ramdrive and for Hyperdisk I used DOS's ramdrive (DOS 3.30). The highest performance configuration under Windows, with times in the low 9's, consisted of Hyperdisk 2 Mb, 1 Mb ram for overlays, and 3 Mb ram for temporary, and 3 Mb left for Windows. Note that nothing is given to Extended I/O. Its use actually reduced performance. Comparing this to the best times under plain DOS of 8 min you have about a 13% performance penalty under Windows. Incidentally, the best times under plain DOS are with the PC-Kwik cache and its ram disk. Here the ram disk makes a difference because PC-Kwik ram works dynamically with the cache to share the memory. I did not try the Hyperdisk cache under plain DOS as the shareware version would not load under 386Max. The commercial version reportedly does. Configuring AutoCAD for Windows 3.0 You probably can use Acad as you presently have it installed with some configuration changes if you have extended lisp. The tricks in making the system work efficiently lies in the autoexec.bat and in the Window's .pif file for Acad. The first thing that you will find out is that you cannot set Acad's environmental variables (set acad=, set acadcfg=, path=, etc.) from a batch file other than the initial autoexec.bat that Windows starts under. Once the environment is set under Windows that is it. That means that the whole Windows' session must have Acad's environment as well as the environment for any other program. It's not too bad if the other programs are all Windows' applications as they don't seem to require anything. Corel Draw uses the same temp ram disk as used by Acad (not simultaneously of course). You may have problems if you use another major non-Windows' application. Note that the environmental variables, acadlimem, acadxmem, ect., will not be used. Memory settings are handled in the .pif file and we are not going to use Ext. I/O anyway, are we. Lispxmem is out as extended lisp doesn't work. Remember all memory is extended. If you need expanded, you are on your own. You must then use Emm386.sys that the Windows documentation sort of refers to as a "last resort." A sample autoexec.bat follows: @echo off prompt $p$g path=c:\;c:\dos;f:\windows;F:\WINWORD; g:\acad10;g:\acad10\ovl;c:\lisp ;* could not get overlays to work without mode lpt1:,,p ;* path. cls type text.bat mkdirj:\temp set TEMP=j:\temp ;* whatever environmental variables needed. set acadfreeram=24000 set acad=c:\symb set acadcfg=i:\ setlispstack=5000 set fff=cdefghij ;* a set for another program A small batch file is used in the acad1.pif. Create your own, do not use the existing acad.pif. Watch how you name the .pif so it is distinguished from the existing acad.pif. The sample batch file follows: cd \acad10\dwg xcopy g:\acad10\ovl\*.* i:\ \acad10\acad xcopy i:\*.* g:\acad10\ovl del i:\*.ovl del i:\*.cfg cd \ Create your acad1.pif by following instructions in Windows' manual. Here are the points you might miss. The .pif dialogue boxes are different for 386 enhanced and other modes. The comments here are for 386 enhanced. Program Filename is the above batch file. Window Title is anything you like. It will appear below the icon. A "?" in the Optional Parameter box pops up a dialog box in which you can set parameters. It did not seem to work for me but I did not persue the matter. Leave blank. The Start-up Directory is the path where you have your batch file located, not where Acad.exe resides. The batch file contains the path to Acad.exe. Video Mode is Graphics/Multiple Text Memory Requirements are 512. XMS Memory is: Required 0; Limit 0. We don't want to give Acad any extended memory. It is all used in caches and ram disks. Note this item does not appear in the 386 enhanced mode dialogue box. It is where you would take care of Acad's extended memory useage in non-386 mode. Don't try to set Acad as a window. It doesn't work. The following points are under the section marked "advanced." I set Acad for exclusive execution which means nothing else is going to get to use the memory even if it is set as a background application. It makes Acad slightly faster and I'm not ready to tackle multi- tasking yet. Multitasking Options - doesn't matter as Acad is set exclusive. Memory options: EMS and XMS. Set the limits to 0. It means that no extended or expanded memory accessible by Acad. Same effect as set=acadxmem,none. Lock the memory in all places, it slightly increased performance. Use high memory, a slight performance increase. Display options: Video memory and Monitor ports; use high graphics. Boxes at bottom: Emulate text mode - didn't seem to matter. Retain Video, if checked, had a BAD effect on performance. Other options: all blank. Why Windows? After I've gotten you this far, I've a question for you. Why do you want to run Acad in Windows anyway? Is it multi-tasking? I doubt that you could do much with Acad running and anyway if you do Acad will be so slow. Is it background processing? Somehow, I don't relish a foul-up with C'serve in the background at $12.50 an hour. I don't mean to say that Windows is no good. It is just not very compatible with AutoCAD. If the problem is that you want to have Windows on your machine and use Acad also, and the compromises of configuring both of them under the same environment is too great, and the bother of changing environments is too much, then try this. Get the August 1990, Vol 9, No. 14 issue of PC Magazine and try the Reconfig.bat utility in the User-to-User column on page 463-4. It allows you to keep multiple configurations (autoexec.bat and config.sys) and change between them by typing "reconfig config_name" at the c:\ prompt. It then loads the new autoexec.bat and config.sys and performs a warmboot. It made keeping track off and changing the many configurations I used in this testing somewhat simpler.