Date: Fri, 3 Apr 92 14:45 +1000 From: Bill Metzenthen Subject: 1.06: cc1 memory hungry, gcc slow To: djgpp AT sun DOT soe DOT clarkson DOT edu, dj AT ctron DOT com Status: O I have just tried the 1.06beta versions of the C compiler (but still using a 1.05 version of go32). My machine has 4M byte of memory installed. Most of the extended memory in my machine was set up as XMS, with 800 kb set aside for EMS. The mem command of DOS 5 reported "2042880 bytes available XMS memory". I tried a compilation of a simple "C" file. Two of the modules involved in the compilation did some swapping to disk (I assume that these are gcc.exe and cc1.exe). The simple compilation took a grinding 57 sec to complete. So, I edited my config.sys and removed the statement which set aside the 800 kb for EMS. The mem command of DOS 5 now reports "2960384 bytes available XMS memory". The same simple compilation then took about 32 sec. It appeared that only gcc.exe was now swapping. Can cc1.exe be modified to be less memory hungry? gcc.exe (the control program which just spawns the pre-processor, compiler, etc) which was (I think) a "Turbo C" program is now a "DJGPP" program. Thus a program which once just sat in memory now swaps out and in several times during a compilation. I believe that this does not save much memory since there will now be two copies of go32 in memory most of the time. I tried returning to the 1.05 version of gcc.exe (leaving all of the other 1.06 versions of the compiler modules installed) and the simple compilation now takes about 25 seconds! There appear to be only minor differences between the two versions of gcc.exe. Can I continue to use the 1.05 version, or do other parts of DJGPP now need the new parameters passed by the 1.06 gcc.exe? --Bill p.s. (Oh yes, one other minor side-effect of v1.06 was that I had to change the definition of TMP in "autoexec.bat" from "SET TMP=F:\TMP" to "SET TMP=F:/TMP". Other programs use TMP, so I am keeping my fingers crossed and hoping that they will not barf at the change.)