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 96AVERAGE 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
