Sunday 27 November 2016

Better, stronger, faster ... there is zapcc

Hi folks,


Today is test's day ! After the test of the static code analyser PVS-STUDIO, this time it will be a new C/C++  compiler on the market, zapcc from the young company Ceemple Software which is based on a modified version of LLVM/clang coming with an innovative caching system. It is available on Mac OS X, Linux and Windows. It works with any unix project based with cmake, autotools.

1/ Projects to test

To have some interesting numbers, I will try with some software important enough which needs several minutes of compilation, LMMS, the popular professional music production platform ... The tests will be conducted with unmodified clang provided by the system and zapcc, under Linux Mint, hardware is a i5-5200U CPU and 8GB of RAM.

Let's start with clang























This is the output with make's 5 jobs











Now ... zapcc which I just increased the default memory cache in the zapccs.config file from 1200 to 2000. Apart of this, we can also add which files we do not wish to be cached.



 The compilers executables are respectively zapcc and zapcc++ but we can see their clang "inheritance" through the following output ...






















As you can see, there is a noticeable time decrease.
What if I try with another source code, opencv for instance to see if there is again a visible decrease as opencv takes longer to build than lmms.

Here, the output with clang ....


zapcc ...













As you can see, the delta is again pretty important ! Good job !


2/ Conclusion
 
Zapcc would be valuable for projects like Qt4/5 which usually take several hours to complete the compilation of all the components. In a professional perspective, the value of zappc is perceptible, usually C++ projects mean important sizes, thus by lessening the time spent on the build we can reallocate this time for other ressources ... But due to the caching, you have to keep in mind there is a logical and unavoidable memory usage increase, thus the settings of this part ought to be balanced regarding the target hardware ...

As zapcc is based on clang/LLVM, it could be possibly ported to FreeBSD as this platform gains more and more popularity in the professional world, it might be worthy to consider this possibility.

Labels: , , , ,

View David Carlier's profile on LinkedIn

Friday 25 November 2016

Another little update

Hi folks,

Finally OpenBSD was able to attract a big funder, Smartisan, very good new which filled quite a gap ;-) Mainly this fundings are helpful for supporting developers, Hackathons to say the least ...

Apart of this, Haproxy 1.7 went out today, a lot of nice features and fixes since 1.6, what I brought personally is mainly the increase of 5 to 12 arguments, the DeviceAtlas module benefits it and the lua module as well. Plus, this week I submitted a draft of pcre2 support for the now new 1.8 branch, we will see how it goes ...

Now I go back to OpenBSD matters, we ll see what outcomes will go out of it :-)

Labels: , , ,

View David Carlier's profile on LinkedIn

Tuesday 15 November 2016

Little update

Hi folks,

Since the last time, not a lot of events but submitted a bunch of patches for some OpenBSD audio ports, jack(1), openal ... contributed a little bit to UFOAI (and a couple of Makefile/cmake changes for BSD), the only popular open source XCom's like. Ah there is my tiny Xonotic contribution merged lately (I nearly forgot this one :-))

Besides, I spent couple of days programming under Visual Studio 2015 / Windows Server 2016 and Casablanca rest sdk / Concurrency Runtime. A long time I did not touch Win internal APIs and its "weirdness", but there is a purpose behind :-) Normally, I would be back on audio matters soon.

Labels: , , , , , , ,

View David Carlier's profile on LinkedIn