[FIX] RE: Performance profiling results... (fwd)

Scott A Crosby crosby at qwes.math.cmu.edu
Fri Oct 5 07:02:53 UTC 2001


There is the fix below suggested by Andreas Raab, and also the following
patch:

--- sqXWindow.c Fri Oct  5 00:54:09 2001
+++ sqXWindow.c~        Wed Jul 25 17:21:22 2001
@@ -168,8 +168,7 @@
 z_stream      *internalZStream=  0;    /* non-zero means gzipped image */
 #endif

-/* #undef USE_ITIMER                   /* severely confuses GNU's  profil() */
-#define USE_ITIMER
+#undef USE_ITIMER                      /* severely confuses GNU's  profil() */

 #ifdef USE_ITIMER
 unsigned int   lowResMSecs= 0;

//

The referred to problem with GNU's profil() no longer occurs under linux.
I had no trouble profiling things, and this cuts down the invocations of
IOMSec by a factor of 40 or so, now, about 70% of the invocations are
caused by smalltalk code!



---------- Forwarded message ----------
Date: Sat, 22 Sep 2001 12:40:00 -0700
From: Andreas Raab <Andreas.Raab at gmx.de>
Reply-To: squeak-dev at lists.squeakfoundation.org
To: squeak-dev at lists.squeakfoundation.org
Subject: RE: Performance profiling results...

Scott,

Interesting results!

> Over 99% of the invocations of the function 'fetchClassOf' are when
> invoked from 'commonSend' in the interpreter. (approximately
> 350 million).

Yup. I see the culprit, it's

	receiverClass := lkupClass := self fetchClassOf: rcvr.

which doesn't get inlined properly. Should be rewritten as

	lkupClass := self fetchClassOf: rcvr.
	receiverClass := lkupClass.

to eliminate the call.






More information about the Squeak-dev mailing list