Some Compiler Performance Benchmarks With The Zapcc Caching Compiler
Here are some quick benchmarks I ran this week of the newly open-sourced Zapcc C++ caching compiler based upon LLVM/Clang and compared to the upstream Clang performance, GCC, and Ccache with the speed on the original compilation of the benchmark code and then again on a subsequent compilation.
This compiler comparison was done on an Intel Xeon Gold system running Ubuntu 18.04 with the Linux 4.17 kernel. Zapcc, LLVM Clang, GCC, and with Ccache were all tested on this same system. With the Phoronix Test Suite test profiles that are not a compile time benchmark itself, the test profile install times are always recorded and when setting the RUN_TIMES_ARE_A_BENCHMARK=1 environment variable, are treated as a benchmark itself when running the tests.
Zapcc has been around for a while but was just open-sourced days ago. Zapcc focuses on super fast compile times albeit the speed of the generated code tends to be comparable with Clang itself, at least based upon last figures.
Sockperf installed very quickly with Zapcc though had problems building with the newer Clang 6.0. (Zapcc is currently based upon the 5.0 code-base.) On the secondary re-compile, the Zapcc compile speed was in line with ccache.
Botan is one of the code-bases where Zapcc compiled faster than the other tested compilers. Clang 6.0 happened to be the slowest compiler over GCC 7.3 by itself or with ccache while Zapcc out-of-the-box came in slightly ahead of ccache and was slightly shortened up on the subsequent recompile.
Granted, the performance o the resulting binary is basically right in line with upstream LLVM Clang.
Zapcc was by far the fastest when it came to the time required to build the LLVM compiler stack.
While the install time for the VP9 libvpx was the fastest with Ccache.
More tests are forthcoming based upon premium interest level.
This compiler comparison was done on an Intel Xeon Gold system running Ubuntu 18.04 with the Linux 4.17 kernel. Zapcc, LLVM Clang, GCC, and with Ccache were all tested on this same system. With the Phoronix Test Suite test profiles that are not a compile time benchmark itself, the test profile install times are always recorded and when setting the RUN_TIMES_ARE_A_BENCHMARK=1 environment variable, are treated as a benchmark itself when running the tests.
Zapcc has been around for a while but was just open-sourced days ago. Zapcc focuses on super fast compile times albeit the speed of the generated code tends to be comparable with Clang itself, at least based upon last figures.
Sockperf installed very quickly with Zapcc though had problems building with the newer Clang 6.0. (Zapcc is currently based upon the 5.0 code-base.) On the secondary re-compile, the Zapcc compile speed was in line with ccache.
Botan is one of the code-bases where Zapcc compiled faster than the other tested compilers. Clang 6.0 happened to be the slowest compiler over GCC 7.3 by itself or with ccache while Zapcc out-of-the-box came in slightly ahead of ccache and was slightly shortened up on the subsequent recompile.
Granted, the performance o the resulting binary is basically right in line with upstream LLVM Clang.
Zapcc was by far the fastest when it came to the time required to build the LLVM compiler stack.
While the install time for the VP9 libvpx was the fastest with Ccache.
More tests are forthcoming based upon premium interest level.
7 Comments