|
From: Ned K. <ne...@bi...> - 2004-11-23 18:33:24
|
Hi all, I noticed the other day that when I build a Linux/x86 VM using the global struct foo (which is the default for Unix) that it is faster than when I build without using the struct foo. That is, the bytecodes/sec speed is the same, and the sends/sec speed is 25-30% slower without struct foo. This contradicted what Andreas had seen earlier; he's been *not* using the struct foo for his Windows builds. Also, I found (as Andreas has) that gcc 2.95.4 produces a VM that is faster than the 3.3 or 3.4 gcc versions that I've tried. I'd earlier thought that a 3.x version had produced faster code, but I guess I was wrong (or it was on a 3.x version of GCC that I haven't tested recently). Anyway, could someone with an x86 machine duplicate my test: * make a clean build directory * clean out the generated sources (assuming you're using Unix) * generate VM sources * configure and make the VM using GCC 2.95 and the -O3 flag: cd build CC=gcc-2.95 CFLAGS="-O3" ../platforms/unix/config/configure run tinyBenchmarks on the resultant VM then... * remove the UnixVMMaker>>createCodeGenerator method and repeat the above steps. Here's what I get for various configurations and compilers: 0 tinyBenchmarks gcc 2.95.4, no struct foo, -O3 '221837088 bytecodes/sec; 4782330 sends/sec' '219178082 bytecodes/sec; 4352264 sends/sec' gcc 2.95.4, struct foo, -O3 '221453287 bytecodes/sec; 6569575 sends/sec' '203013481 bytecodes/sec; 6563459 sends/sec' gcc 2.95.4, no struct foo -O3 '221070811 bytecodes/sec; 4743711 sends/sec' '221645021 bytecodes/sec; 4662139 sends/sec' gcc 2.95.4, struct foo -O3 '222996515 bytecodes/sec; 6843839 sends/sec' '220309810 bytecodes/sec; 6739153 sends/sec' -O3 -fno-gcse '113980409 bytecodes/sec; 5194661 sends/sec' gcc 3.3.5, struct foo -O3 '200469851 bytecodes/sec; 6857154 sends/sec' '198603568 bytecodes/sec; 6778033 sends/sec' -O2 '202371541 bytecodes/sec; 6232674 sends/sec' '203984063 bytecodes/sec; 6113751 sends/sec' gcc 3.4.2, struct foo -O3 '113374667 bytecodes/sec; 5276313 sends/sec' '111888111 bytecodes/sec; 5284224 sends/sec' gcc 3.4.2, struct foo -O3 -fnew-ra '113374667 bytecodes/sec; 5233225 sends/sec' '112379280 bytecodes/sec; 5217731 sends/sec' gcc 3.4.2, struct foo -O3 -fno-gcse '113174182 bytecodes/sec; 5190835 sends/sec' '112478031 bytecodes/sec; 5272367 sends/sec' Thanks, -- Ned Konz http://bike-nomad.com |