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