1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

The Performance Between GCC Optimization Levels

Michael Larabel

Published on 13 October 2012
Written by Michael Larabel
Page 1 of 5 - 23 Comments

For those that have never benchmarked the performance differences between GCC's different optimization levels, here are some recent test results comparing the performance differences when using an AMD FX-8150 processor with GCC 4.7.2.

These are just some straightforward benchmarks to share showing the performance differences of GCC 4.7.2 from the AMD FX-8150 Bulldozer system when changing out the optimization flags and then having the Phoronix Test Suite re-build the tests each time followed by letting it do its automated benchmarks.

For those unfamiliar with the different optimization flags, see the GCC optimize options documentation. The tested flags used in this article include:

-O0 - Reduce compilation time and make debugging produce the expected results. This is the default.

-O1 - Optimize. Optimizing compilation takes somewhat more time, and a lot more memory for a large function.

-O2 - Optimize even more. GCC performs nearly all supported optimizations that do not involve a space-speed tradeoff. As compared to -O, this option increases both compilation time and the performance of the generated code.

-O3 - Optimize yet more. -O3 turns on all optimizations specified by -O2 and also turns on the -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload, -ftree-vectorize, -fvect-cost-model, -ftree-partial-pre and -fipa-cp-clone options.

-Os - Optimize for size. -Os enables all -O2 optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size.

-Ofast - Disregard strict standards compliance. -Ofast enables all -O3 optimizations. It also enables optimizations that are not valid for all standard-compliant programs. It turns on -ffast-math and the Fortran-specific -fno-protect-parens and -fstack-arrays.

Only the generated binary performance is being compared in this article and not focusing upon the compilation time (though there is one result shared in this article of the PHP compilation time) or generated binary size.

Latest Articles & Reviews
  1. Intel Broadwell: GCC 4.9 vs. LLVM Clang 3.5 Compiler Benchmarks
  2. Ubuntu vs. Fedora Linux On Lenovo's X1 Carbon With Core i7 Broadwell
  3. Ubuntu 15.04 Is The Easy Path To Better Performance On Intel Broadwell
  4. NVIDIA's Latest Maxwell Line-Up Against AMD With Catalyst On Linux
  5. Preliminary Tests Of Intel Sandy Bridge & Ivy Bridge vs. Broadwell
  6. AMD FX-8320E Performance On Linux
Latest Linux News
  1. Virtual GEM To Increase Mesa's Software Rasterizer Performance
  2. Open Lunchbox: Yet Another Open-Source Laptop Attempt
  3. Wayland/Weston 1.7 Release Candidate
  4. Bugzilla 5.0 Is Coming Soon With New Features
  5. Linux Benchmarking... Even Faster & A Very Interesting February
  6. Does VirtualBox VM Have Much A Future Left?
  7. HAMMER2 File-System Is Still Slowly Coming Together
  8. The Better Looking Window Decorations For GNOME 3.16
  9. Libinput 0.9 Adds Support For Hovering Fingers On Touchpads
  10. Free Software Foundation Endorses Another (Outdated) Laptop
Most Viewed News This Week
  1. PlayStation 4 System Compiler Support Landing In LLVM
  2. LibreOffice 4.4 Is Coming Soon With New Features
  3. Linux "GHOST" Vulnerability Hits Glibc Systems
  4. Broadwell Linux Ultrabook Running MUCH Cooler Than Haswell
  5. LZHAM 1.0 Lossless Data Compression Codec Released
  6. Linux Users Upset By Chromium's Busted HiDPI Support
  7. Vivaldi: A New Chromium-Powered, Multi-Platform Browser
  8. LibreOffice 4.4 Released With Better OOXML Support, UI Improvements