Large performance regressions from 2.95.2/3 to HEAD

Daniel Berlin dan@cgsoftware.com
Thu Jun 29 12:47:00 GMT 2000


In every benchmark i can find, i see large performance regressions in the
performance of the generated.
Based on the benchmarks showing it the most, i'm guessing it to be
something different in the inlining.
For example, with the stepanov benchmark, 2.95.2/3 (ie the 2.95 branch),
gets, on my PIII 600:
test	absolute	additions	ratio with
number	time		per second	test0

0	0.34sec		147.06M		1.00
1	0.34sec		147.06M		1.00
2 <same as 1>
3 <same as 1>
4	0.35sec		142.86M		1.03
5. <same as 4>
6.	0.36sec		138.89M		1.06
7. <same as 4>
8. 	0.37sec		135.14M		1.09
9. <same as 1>
10. <same as 1>
11 <same as 1>
12 <same as 4>

Total absolute time: 4.51 sec
Abstraction Penalty: 1.02
(for those who don;'t know, this benchmark tries to measure theabstraction
penalty, the higher the test number, the more abstract way of doing the
same thing it's using.)

For the head branch of cvs, i get the following:

test	absolute	additions	ratio with
number	time		per second	test0

0	0.34sec		147.06M		1.00
1	0.35sec		142.86M		1.03
2.	3.24sec		15.43M		9.53
3	1.50sec		33.33M		4.41
4.	2.85sec		17.54M		8.38
5. <same as 3>
6. <same as 4>
7.	1.60sec		31.25M		4.71
8.	2.70sec		18.52M		7.94
9. <same as 7>
10. <same as 8>
11.	1.58sec		31.65M		4.85
12.	3.35sec		14.93M		9.85

Total absolute time: 26.16sec
Abstraction Penalty: 4.87

I see the same type of decrease in other things using templates vs
non-templates. While the non-templated stuff is usually quite a bit
faster, the stuff using templates seems to be at least half as fast, if
not worse.

Anyone have any idea what's going on?
--dan



More information about the Gcc mailing list