![]() ![]()
|
![]() |
![]() Performance NumbersAs many developers know, providing performance numbers can be a bit a tricky. I have tried to pull together a bunch of information looking both at low-level primitives, which give a fairly good indication of compiler performance, and higher level applications which might give a better example of real-world speed improvements.The numbers below measure percentage improvements or decreases in performance between Release 3.2, Release 4 Metrowerks/PE and Release 4 EGCS/ELF. These will be denoted as 3.2, PE and ELF in the figures below. All of these tests we performed on the same machine:
I chose this hardware as it is a fairly standard, middle of the road new machine that costs roughly $1000. The performance numbers differ depending on exactly what hardware you have. I do want to note that there are instances where the switch to ELF and gcc seems to marginally decrease performance. We think that this has to do with the slight increase in overhead when calling a function from a shared library. In those tests (like the Transaction Timings below) where much of the actual time is spent making these function calls, rather than doing lots of actual calculations, this speed difference will appear. In normal, non-benchmark applications this speed difference is negligible. Coding Primitives:
*Metrowerks had a particularly bad implementation OS Primitives:
Transaction Timings
ELF vs. 3.2: + 603%
ELF vs. 3.2: + 3997%
Semaphore Speeds
ELF vs. 3.2: + 7%
Real Applications
Fractal App
ELF vs. 3.2: + 774%
Query Test
ELF vs. 3.2: + 20% Back to the Switch |
Copyright ©1999 Be, Inc. Be, BeOS, and the Be and BeOS logos are registered trademarks, and BeBox, BeWare, GeekPort are trademarks of Be, Inc. All other trademarks mentioned are the property of their respective owners. Comments about this site? Please write us at webmaster@be.com. Icons used herein are the property of Be Inc. All rights reserved.