gcc 3.3 versus bench++
poschmid@lbl.gov
poschmid@lbl.gov
Thu Mar 27 02:05:00 GMT 2003
Here are bench++ results for two snapshots of gcc 3.3 versus the gcc
3.2 release. The testsuite were run on an i686-pc-linux-gnu
target.
The system is equipped with a Pentium iv at 1800 MHz and 256 MB of
RAM. The system setup is glibc-2.3.2, binutils 2.12.90.0.15 and
linux-2.4.19.
Hope this helps,
Peter Schmid
RELATIVE TIMES ..........
TEST NAME Pentium iv Pentium iv Pentium iv
gcc 3.3 gcc 3.2 gcc 3.3
20030325 release 20030314
-O2 -O2 -O2
--------- ---------- ---------- ----------
A000091 1.00 0.96 1.03
A000092 1.00 0.99 1.00
A000094a 1.00 1.06 1.02
A000094b 1.00 1.18 1.00
A000094c 1.00 1.00 1.00
A000094d 1.00 0.97 1.00
A000094e 1.00 1.07 1.00
A000094f 1.00 1.31 0.97
A000094g 1.00 1.00 1.00
A000094h 1.00 0.99 0.99
A000094i 1.00 0.91 0.99
A000094j 1.00 1.05 0.99
A000094k 1.00 1.08 1.01
B000002b 1.00 1.01 1.00
B000003b 1.00 1.02 1.00
B000004b 1.00 1.05 1.04
B000010 1.00 1.16 1.00
B000011 1.00 1.07 0.97
B000013 1.00 1.03 0.99
D000001 1.00 1.08 0.99
D000002 1.00 2.08 1.00
D000003 1.00 0.87 1.00
D000004 1.00 2.05 1.01
D000005 1.00 0.16 1.04
D000006 1.00 1.92 1.00
E000001 1.00 1.01 0.99
E000002 1.00 1.44 0.98
E000003 1.00 1.14 0.98
E000004 1.00 1.15 0.98
E000007 1.00 1.22 0.98
E000008 1.00 2.38 1.00
F000001 1.00 1.25 1.00
F000002 1.00 1.66 0.98
F000003 1.00 1.16 0.76
F000004 1.00 0.87 0.58
F000005 1.00 1.02 0.86
F000006 1.00 0.63 0.78
F000007 1.00 0.96 0.92
F000008 1.00 1.12 1.01
G000001 1.00 1.07 1.00
G000002 1.00 1.22 0.96
G000003 1.00 0.80 0.98
G000004 1.00 0.78 1.00
G000007 1.00 0.24 0.98
H000001 1.00 1.00 1.02
H000002 1.00 0.95 1.02
H000003 1.00 1.12 1.01
H000004 1.00 1.01 1.00
H000005 1.00 0.00 0.00
H000006 1.00 7.61 0.92
H000007 1.00 1.17 0.98
H000008 1.00 0.38 0.86
H000009 1.00 1.57 1.00
L000001 1.00 0.52 0.73
L000002 1.00 0.74 0.34
L000003 1.00 1.67 1.15
L000004 1.00 3.95 2.52
O000001a 1.00 1.09 1.01
O000001b 1.00 1.10 1.00
O000002a 1.00 1.01 1.00
O000002b 1.00 1.05 1.00
O000003a 1.00 1.05 0.99
O000003b 1.00 0.93 1.00
O000004a 1.00 0.96 1.02
O000004b 1.00 0.97 1.02
O000005a 1.00 1.02 1.01
O000005b 1.00 1.01 1.01
O000006a 1.00 1.01 1.00
O000006b 1.00 0.99 1.00
O000007a 1.00 1.07 1.00
O000007b 1.00 1.22 1.01
O000008a 1.00 0.98 1.01
O000008b 1.00 0.88 0.94
O000009a 1.00 0.98 1.01
O000009b 1.00 1.08 1.02
O000010a 1.00 0.99 1.00
O000010b 1.00 0.94 1.04
O000011a 1.00 1.27 0.97
O000011b 1.00 0.94 0.97
O000012a 1.00 0.94 0.97
O000012b 1.00 1.00 1.00
P000001 1.00 2.56 2.77
P000002 1.00 0.53 1.26
P000003 1.00 0.45 0.97
P000004 1.00 nan nan
P000005 1.00 0.82 0.96
P000006 1.00 1.07 1.03
P000007 1.00 1.01 0.97
P000008 1.00 0.87 0.95
P000010 1.00 0.66 1.01
P000011 1.00 0.58 0.99
P000012 1.00 0.55 1.00
P000013 1.00 0.72 1.00
P000020 1.00 1.03 0.96
P000021 1.00 -- 2.45
P000022 1.00 -- 2.90
P000023 1.00 1.02 0.99
S000001a 1.00 1.18 1.17
S000001b 1.00 1.01 1.13
S000002a 1.00 1.07 1.00
S000002b 1.00 0.99 1.01
S000003a 1.00 1.03 1.01
S000003b 1.00 1.02 1.01
S000004a 1.00 0.59 1.00
S000004b 1.00 0.79 1.00
S000005a 1.00 0.81 0.96
S000005b 1.00 1.01 0.99
S000005c 1.00 1.04 1.24
S000005d 1.00 1.02 1.00
S000005e 1.00 1.09 0.97
S000005f 1.00 1.00 1.00
S000005g 1.00 1.14 1.08
S000005h 1.00 1.00 1.00
S000005i 1.00 1.09 1.00
S000005j 1.00 1.02 1.00
S000005k 1.00 1.10 1.00
S000005l 1.00 0.85 1.06
S000005m 1.00 1.04 1.01
a000091.cpp Dhrystone
a000092.cpp Whetstone
a000094a..k Hennesy benchmarks
This group of tests measures the performance of some
real (useful) C++ code, including a tracker algorithm,
an Orbit calculation, a Kalman filter, and a Centroid
algorithm. Here is where other small useful benchmarks
should be added. Please send ideas to
"joseph.orost@att.com".
b000002b.cpp Tracker: float
b000003b.cpp Tracker: double
b000004b.cpp Tracker: float & int
b000010.cpp Orbit
b000011.cpp Kalman
b000013.cpp Centroid
This group of tests measures dynamic allocation related
timing.
d000001.cpp malloc & free: 1000 ints
d000002.cpp malloc & init & free: 1000 ints
d000003.cpp new & delete: 1000 ints
d000004.cpp new & init & delete: 1000 ints
d000005.cpp alloca: 1000 ints (optional test)
d000006.cpp alloca & init: 1000 ints (optional test)
This group of tests measures exception related timing.
For historical reasons, e000005 is missing.
e000001.cpp Local exception caught
e000002.cpp Class method exception caught
e000003.cpp Procedure exception caught: 3-deep
e000004.cpp Procedure exception caught: 4-deep
e000006.cpp Declared Procedure exception caught: 4-deep
e000007.cpp Procedure exception caught: 4-deep re-thrown at each level
e000008.cpp Procedure exception 4-deep: Implemented using setjmp/longjmp
This group of tests measures coding style related timing.
f000001.cpp Boolean assignment
f000002.cpp Boolean if
f000003.cpp 2-way if/else
f000004.cpp 2-way switch
f000005.cpp 10-way if/else
f000006.cpp 10-way switch
f000007.cpp 10-way sparse switch
f000008.cpp 10-way virtual function call
This group of tests measures I/O related timing.
g000001.cpp iostream.getline: 20 char buffer
g000002.cpp iostream.>> : 20 chars in loop
g000003.cpp iostream.<< : 20 char buffer
g000004.cpp iostream.<< : 20 chars in loop
g000005.cpp istrstream.>> : int
g000006.cpp istrstream.>> : float
g000007.cpp fstream.open/fstream.close
This group of tests measures machine level features.
h000001.cpp packed bit arrays
h000002.cpp unpacked bit arrays
h000003.cpp packed bit ops in loop
h000004.cpp unpacked bit ops in loop
h000005.cpp int conversion
h000006.cpp 10-float conversion
h000007.cpp bit-fields
h000008.cpp bit-fields and packed bit array
h000009.cpp pack and unpack class objects
This group of tests measures loop overhead related timing.
l000001.cpp "for" loop
l000002.cpp "while" loop
l000003.cpp inf. loop w/break
l000004.cpp 5-iteration loop
This group of tests measures optimizer performance.
o000001a.cpp Constant Propagation (including math functions)
o000001b.cpp " Hand Optimized
o000002a.cpp Local Common Sub-expression (including math functions)
o000002b.cpp " Hand Optimized
o000003a.cpp Global Common Sub-expression
o000003b.cpp " Hand Optimized
o000004a.cpp Unnecessary Copy
o000004b.cpp " Hand Optimized
o000005a.cpp Code Motion (including math functions)
o000005b.cpp " Hand Optimized
o000006a.cpp Induction Variable
o000006b.cpp " Hand Optimized
o000007a.cpp Reduction in Strength (including math functions)
o000007b.cpp " Hand Optimized
o000008a.cpp Dead Code
o000008b.cpp " Hand Optimized
o000009a.cpp Loop Jamming
o000009b.cpp " Hand Optimized
o000010a.cpp Redundant Code
o000010b.cpp " Hand Optimized
o000011a.cpp Unreachable Code
o000011b.cpp " Hand Optimized
o000012a.cpp String Ops
o000012b.cpp " Hand Optimized
This group of tests measures procedure call related timing.
There is no test p000009, nor 14 thru 19.
p000001.cpp Procedure Call: No Args
p000002.cpp Procedure Call: No Args: Catches Exceptions
p000003.cpp Static Class Method Call: No Args: Catches Exceptions
p000004.cpp Inline Procedure Call: No Args
p000005.cpp Static Class Method Call: 1-int Arg: Catches Exceptions
p000006.cpp Static Class Method Call: 1-int *Arg: Catches Exceptions
p000007.cpp Static Class Method Call: 1-int &Arg: Catches Exceptions
p000008.cpp Procedure Call: No Parameters: Called thru pointer, Catches Exceptions
p000010.cpp Procedure Call: 10-int Args: Catches Exceptions
p000011.cpp Procedure Call: 20-int Args: Catches Exceptions
p000012.cpp Procedure Call: 10-(3-int) Args: Catches Exceptions
p000013.cpp Procedure Call: 20-(3-int) Args: Catches Exceptions
p000020.cpp Class Method Call: 1-"this" Arg: Catches Exceptions
p000021.cpp Virtual Class Method Call: 1-"this" Arg: Catches Exceptions
p000022.cpp Virtual Const Class Method Call: 1-"this" Arg: Catches Exceptions
p000023.cpp Same as p000022: called in loop to see if lookup is optimized
This group of tests measures object oriented style vs.
C style.
s000001a.cpp Max: C++ Style
s000001b.cpp Max: C Style
s000002a.cpp Matrix: C++ Style
s000002b.cpp Matrix: C Style
s000003a.cpp Iterator: C++ Style
s000003b.cpp Iterator: C Style
s000004a.cpp Complex: C++ Style
s000004b.cpp Complex: C Style
s000005a.cpp Stepanov: C++ Style Abstraction Level 12
s000005b.cpp Stepanov: C++ Style Abstraction Level 11
s000005c.cpp Stepanov: C++ Style Abstraction Level 10
s000005d.cpp Stepanov: C++ Style Abstraction Level 9
s000005e.cpp Stepanov: C++ Style Abstraction Level 8
s000005f.cpp Stepanov: C++ Style Abstraction Level 7
s000005g.cpp Stepanov: C++ Style Abstraction Level 6
s000005h.cpp Stepanov: C++ Style Abstraction Level 5
s000005i.cpp Stepanov: C++ Style Abstraction Level 4
s000005j.cpp Stepanov: C++ Style Abstraction Level 3
s000005k.cpp Stepanov: C++ Style Abstraction Level 2
s000005l.cpp Stepanov: C++ Style Abstraction Level 1
s000005m.cpp Stepanov: C++ Style Abstraction Level 0
More information about the Libstdc++
mailing list