CoyoteGulch.com has published an interesting article, benchmarking GCC 3.04 and ICC 6 (the article will be updated again after GCC 3.1’s release). In the tests, ICC seems to pull ahead in most tests. When it’s behind, it’s never very far behind. The opposite is not true, and there are benchmarks where ICC is very far ahead, generating code that can be up to 5 times better than gcc’s. Especially interesting, the “Stepanov” benchmark, which shows that ICC is capable of understanding the most complex c++ constructs, whereas GCC gets confused by them and ends up generating much slower code. This is bothersome, because it means that developers who want to get the most speed out of their gcc-compiled system need to write their code pretty much in C, whereas those using ICC can use all the productivity-enhancing features of C++ without speed penalty. As for the “WhetStone” benchmark, shows that gcc still has serious issues dealing with x87 floating-point code. It would also be very interesting to run the very same benchmark on a Pentium4, varying the compiler options, in order to see how both compilers can take advantage of the Pentium4’s extra features, and especially SSE-2. Update: Another benchmark can be found here.