Stas Bekman wrote:
[...]
2)

D (+shrplib, -ithreads, +perlio, -debug) 128
A (+shrplib, -ithreads, +perlio, +debug) 100

D and A are the same builds, and similar to B&F the only difference is
debugging enabled in A. As you can see with ithreads disabled enabled
debugging affects the performance much less. Still it clearly shows
that you don't want the debugging enabled on your production perl.

What puzzles me greatly is that why F w/ ithreads outperforms D w/o
ithreads. Go figure. I'm starting to be suspicios of making hard
conclusions from running perlbench. The only possible reason I can
think of is that:

F: -O2 -fomit-frame-pointer -pipe -march=i586 -mcpu=pentiumpro
D: -O2 -finline-functions, -fweb, -funit-at-a-time, -ftracer,
   -funswitch-loops and -frename-registers

F has better a better choice of optimizations. (D has -03 and I have
expanded it according to the gcc manpage), e.g., D doesn't use the
-mcpu optimization, which may be the crucial factor.

Indeed, recompiling the stock perl 5.8.1 with Mandrake 9.2's optimization flags and not the defaults, speeds it up by about 12% (140 - 128, 97 - 100) (for the perlbench tests). Mandrake's threaded perl is just a tiny bit slower than my custom non-threaded perl build for this benchmark ;)


A) perl-5.008001
path = /home/stas/perl/5.8.1-nodebug/bin/perl5.8.1
cc = cc
optimize = -O2 -fomit-frame-pointer -pipe -march=i586 -mcpu=pentiumpro
ccflags = -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
usemymalloc = n


B) perl-5.008001
path = /usr/bin/perl5.8.1
cc = gcc
optimize = -O2 -fomit-frame-pointer -pipe -march=i586 -mcpu=pentiumpro
ccflags = -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
usemymalloc = n


                           A       B
                        ----    ----
arith/mixed              100     107
arith/trig               100     105
array/copy               100     104
array/foreach            100     102
array/index              100     103
array/pop                100      96
array/shift              100      93
array/sort-num           100      70
array/sort               100      81
call/0arg                100     104
call/1arg                100     100
call/2arg                100      77
call/9arg                100     105
call/empty               100     116
call/fib                 100      98
call/method              100     108
call/wantarray           100      91
hash/copy                100      94
hash/each                100      76
hash/foreach-sort        100     124
hash/foreach             100     105
hash/get                 100      81
hash/set                 100      89
loop/for-c               100     137
loop/for-range-const     100     107
loop/for-range           100      92
loop/getline             100     100
loop/while-my            100     114
loop/while               100     105
re/const                 100     107
re/w                     100      66
startup/fewmod           100      83
startup/lotsofsub        100      75
startup/noprog           100      76
string/base64            100     101
string/htmlparser        100      88
string/index-const       100     119
string/index-var         100      81
string/ipol              100     100
string/tr                100      96

AVERAGE 100 97


__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com


-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html



Reply via email to