Sun Studio 12 vs. GCC3 vs. GCC4 Benchmarks

Written by Michael Larabel in Software on 20 February 2009 at 09:14 AM EST. Page 1 of 6. 26 Comments.

Earlier this month we published an article looking at the Linux versus OpenSolaris performance when using the new AMD Shanghai Opteron CPUs. Ubuntu Linux was faster than OpenSolaris 2008.11 in nearly all of the tests, but as mentioned in that article, OpenSolaris is still dependent upon GCC 3.4 where as Ubuntu and most other Linux distributions are now shipping with the newer and much-improved GCC 4 series. Following that article being published, Sun Microsystems had requested some compiler tests since they were confident the results would be different had their Sun Studio compiler been used. Well, in this article we now have some OpenSolaris benchmarks from the same AMD setup using GCC 3.4, GCC 4.0, and Sun Studio 12.

GCC 3.4.3 is available via the Image Packaging System in OpenSolaris 2008.1 while GCC 4.0.2 was installed through the BlastWave package repository. Sun Studio 12 (2008/10/07) was installed manually after downloading it from the Sun Microsystems web-site. Beyond the compiler changes, OpenSolaris 2008.11 was left in its stock configuration with the Solaris Nevada 101b package-set, X Server 1.3.0, NVIDIA 177.80 display driver, and using the ZFS file-system on the entire hard disk.

The hardware components once again consisted of two AMD Opteron 2384 (clocked at 2.70GHz) quad-core processors, a Tyan Thunder n3600M motherboard, 4GB of Corsair DDR2-667MHz memory, 160GB Seagate Serial ATA 2.0 hard drive, NVIDIA GeForce 9800GTX 512MB graphics card, and the display was a Samsung SyncMaster 305T 30-inch LCD.

The benchmarks we ran for this OpenSolaris compiler testing were LAME MP3 encoding, Ogg encoding, timed PHP compilation, GnuPG, GraphicsMagick, and SQLite. In the tests besides the timed compilation, the Phoronix Test Suite built all of the tests from source using the respective compiler and the resulting binaries were used for the testing process. All stock compiler flags for each package were used.


Related Articles