Clang'ed FreeBSD: Builds Quicker, Uses Way Less RAM

Posted by Michael Larabel on September 05, 2012

A FreeBSD developer has carried out a series of performance tests to explore the impact that LLVM/Clang as the default FreeBSD compiler has on FreeBSD 10 in its current form. The Clang compiler performance was compared to GCC 4.2.1 and GCC 4.7.1. Clang mostly comes out ahead of GCC on FreeBSD.

With the yet-to-be-released FreeBSD 10, Clang is the default compiler with GCC being deprecated from this popular BSD operating system. The simple conclusion from Dimitry Andric that did the compiler testing on FreeBSD 10.0-CURRENT is that Clang compiles mostly faster than GCC (sometimes by a wide margin) and that Clang uses "significantly less" memory during the compilation process.

This testing was looking at the compilation speed as opposed to the speed of the result binaries, which is where Phoronix compiler benchmarks are mostly focused on.

Below are the key remarks from Dimitry's FreeBSD 10 amd64 compiler testing between GCC and LLVM/Clang.
Summary:
--------
For building this specific large C++ program, gcc 4.2.1 is ~86% slower than clang 3.1 in real time, ~82% slower in user time, and ~176% slower in system time. The maximum resident set size during building is ~217% larger, and it causes ~279% more page reclaims.

Though gcc 4.7.1 is faster than its older version, it is still ~68% slower than clang 3.1 in real time, ~64% slower in user time, and ~161% slower in system time. The maximum resident set size during building is ~220% larger, and it causes ~208% more page reclaims.

Finally, clang 3.2 is ~3% slower than clang 3.1 in both real time and user time, and ~2% slower in system time. The maximum resident set size and the number of page reclaims during building are approximately equal.

Conclusion:
-----------
Clang 3.1 is clearly the fastest compiler for building this specific large C++ program, with clang 3.2 trailing closely behind. Both are significantly faster, and use much less memory than either version of gcc.
So the Clang C/C++ compiler is doing very good in the FreeBSD world for building packages faster while using less memory. The only negative news towards Clang from these results is that the currently-in-development LLVM 3.2 is slightly slower than LLVM 3.1, but hopefully the build-time performance regressions can be worked out prior to the official 3.2 release and isn't becoming a trend of Clang slowing down as more functionality is introduced into the Apple-sponsored compiler.

The compiler testing data in full is available from this mailing list post.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. Mir's GPLv3 License Is Now Raising Concerns
  2. NVIDIA Driver Soon Likely To Support EGL, Mir
  3. OpenMandriva Goes Into Alpha Form, Russian-Based
  4. NVIDIA Brings Their Linux Driver To ARM
  5. D Language Still Showing Promise, Advancements
  6. Planetary Annihilation Released For Linux Gamers
  7. Gentoo Starts Work On KDE-Wayland Support
  8. NVIDIA To License Its Kepler GPU Technology
  9. KDE's KWin Made Lots Of Progress In 4.11
  10. Ubuntu Announces Carrier Advisory Group
  11. Qt 5.1 Release Candidate 1 Has Arrived
Latest Forum Talk
  1. NVIDIA Brings Their Linux Driver To ARM
  2. Mir's GPLv3 License Is Now Raising Concerns
  3. D Language Still Showing Promise, Advancements
  4. NVIDIA Driver Soon Likely To Support EGL, Mir
  5. PulseAudio 4.0 Brings Many Changes
  6. Intel GPU Driver Tries To Rip Out FBDEV Support
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite