intel benchmarks with global structure, jumptable & CGeneratorEnhancements-ajh

John M McIntosh johnmci at smalltalkconsulting.com
Sat May 4 07:31:32 UTC 2002


Ian had asked me about the changes I've made on the powerpc and was 
wondering about
non-powerpc. Well I've a intel box here so I thought I try a few things
Besides I was building socket code so everything was setup already.

I'll let the intel folks draw their own conclusions,
and I can't speak for MS compilers, so maybe only linux and BSD folks 
can apply.

Given

gcc 2.95.3 on FreeBSD 4.3-RELEASE-p28 i386

using Ians standard build environment and his compiler options I saw
As shipped from Ian
29962546 bytecodes/sec; 952275 sends/sec
29962546 bytecodes/sec; 965687 sends/sec
29962546 bytecodes/sec; 961174 sends/sec
29906542 bytecodes/sec; 962073 sends/sec
29143897 bytecodes/sec; 938373 sends/sec
29962546 bytecodes/sec; 963877 sends/sec
29990627 bytecodes/sec; 935811 sends/sec
29602220 bytecodes/sec; 965687 sends/sec
29629629 bytecodes/sec; 937517 sends/sec
29170464 bytecodes/sec; 963877 sends/sec

with jumptable pointer logic on!
(Ian has a pending change for this for powerpc, but maybe for intel now too?)
34725990 bytecodes/sec; 1002394 sends/sec
34953577 bytecodes/sec; 996566 sends/sec
35049288 bytecodes/sec; 981352 sends/sec
34594594 bytecodes/sec; 989852 sends/sec
34896401 bytecodes/sec; 988900 sends/sec
34725990 bytecodes/sec; 990806 sends/sec
35010940 bytecodes/sec; 991761 sends/sec
35030103 bytecodes/sec; 990806 sends/sec
35049288 bytecodes/sec; 989852 sends/sec
35049288 bytecodes/sec; 970242 sends/sec

with global structure logic
26644462 bytecodes/sec; 1014257 sends/sec
31158714 bytecodes/sec; 1026404 sends/sec
31158714 bytecodes/sec; 1015258 sends/sec
31128404 bytecodes/sec; 1025380 sends/sec
31158714 bytecodes/sec; 987002 sends/sec
31158714 bytecodes/sec; 1041351 sends/sec
31037827 bytecodes/sec; 1015258 sends/sec
31158714 bytecodes/sec; 1027429 sends/sec
31128404 bytecodes/sec; 1012260 sends/sec
31128404 bytecodes/sec; 1026404 sends/sec

with jumptable pointer logic and global structure logic.
(well I'm not sure why the numbers only hit 34000000, versus 35000000)
(maybe a benchmark noise but? Or side effects or what?)

32972694 bytecodes/sec; 1027843 sends/sec
34024455 bytecodes/sec; 1027209 sends/sec
34006376 bytecodes/sec; 1026575 sends/sec
34024455 bytecodes/sec; 1032947 sends/sec
34024455 bytecodes/sec; 1030389 sends/sec
33560566 bytecodes/sec; 1036809 sends/sec
34006376 bytecodes/sec; 1028457 sends/sec
34042553 bytecodes/sec; 1032307 sends/sec
34024455 bytecodes/sec; 1030389 sends/sec
34024455 bytecodes/sec; 1032947 sends/sec"

with jumptable pointer logic and global structure logic and 
CGeneratorEnhancements-ajh
38231780 bytecodes/sec; 1113841 sends/sec
38670694 bytecodes/sec; 1102769 sends/sec
38670694 bytecodes/sec; 1129720 sends/sec
38600723 bytecodes/sec; 1102769 sends/sec
38670694 bytecodes/sec; 1119084 sends/sec
38647342 bytecodes/sec; 1102769 sends/sec
38670694 bytecodes/sec; 1119084 sends/sec
38624019 bytecodes/sec; 1103500 sends/sec
38647342 bytecodes/sec; 1118332 sends/sec
38049940 bytecodes/sec; 1103500 sends/sec

mmm didn't break out  CGeneratorEnhancements-ajh by itself however
I guess my limited testing shows some better numbers

29962546 bytecodes/sec; 965687 sends/sec
versus
38670694 bytecodes/sec; 1129720 sends/sec

and here I thought the ppc optimizer was bad.
oh well maybe I'm imagining things...
Now just need someone else to confirm these results, and maybe do a bit
more benchmarking.

note I had to change the extern variable references in sqXWindow.c to use the
accessors/mutators that are put in interp.c for say

int getInterruptKeycode();
int getInterruptPending();
int setInterruptCheckCounter(int value);
int getSavedWindowSize();
int setSavedWindowSize(int value);

but the work wasn't more that 1/2 hour or so.
The sourceforge mac vm directory contains the change sets.
Have fun.

-- 
--
===========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================



More information about the Squeak-dev mailing list