clang vs gcc build performance (executable not build time)
Michael Meeks
michael.meeks at collabora.com
Tue Nov 23 15:11:29 UTC 2021
Hi Arnaud,
On 22/11/2021 16:28, Arnaud Versini wrote:
> I just tested libreoffice performance between GCC + gold + libstdc++,
> clang + lld + libstdc++ and clang + lld + libc++ and noticed that gcc
> builds are slower (at least in this case).
That sounds like an interesting result; thanks for measuring.
> I will write a blog article
> with all the process to reproduce but small version, it just converts
> openDocument standart files (ODF 1.0 to 1.3) to PDF.
Fair enough =) its good to see the general stability of the benchmark
numbers.
> There is no
> significant difference between both clang builds (changing lib C++ from
> libstdc++ to libc++) but gcc is slower than clang. Of course all builds
> don't use system libraries in this case to compare between lib C++, and
> builds are optimised and use LTO.
Looks interesting.
Lubos - what are our build defaults currently and do you have thoughts
on changing them ? it would be great to poke at Arnaud's blog / work
as/when it gets published =)
> OpenSUSE 7.2 Clang + libc++ Clang + std Gcc + std
> Run 1 50,923045275 45,456441587 45,878275287 49,487550577
> Run 2 50,360027388 43,83441037 44,303120572 47,898307652
> Run 3 50,258628137 43,552443057 44,332110013 47,596628518
> Run 4 50,062155622 43,587905602 44,616728628 47,430735675
> Run 5 53,567235331 43,548408389 44,561502427 47,727024813
> Run 6 50,354870307 43,877387065 44,107891362 47,444552655
> Run 7 49,663738973 43,92048805 44,583599634 47,293633635
> Run 8 49,780141995 43,843555496 44,055990454 47,561677627
> Run 9 49,763425026 43,398042427 44,011950682 47,65275752
> Run 10 50,197944032 44,153460819 44,303763557 47,974880802
> Average 50,4931212086 43,9172542862 44,4754932616 47,8067749474
>
> For information I use openSUSE Tumbleweed latest release.
>
> I also noticed that libengine12 is really bigger with GCC but I've not
> have that data on me now.
That's interesting too - how much bigger? I would assume that we use
-Os to optimize for size as well as for speed: since huge binaries may
be more optimal in theory but can be much slower to load and kill your
cache in practice: but it sounds like this is some combination of bigger
& slower.
I wonder what the compile option difference is.
> I hope this could be an idea of improvement ! Next crazy test I would
> like to do is between MSVC and clang on windows ! But it seems harder !
Ah - now that would be lovely being able to use the same compiler
everywhere =) would be really interesting to compare the performance there.
Good work !
Michael.
--
michael.meeks at collabora.com <><, GM Collabora Productivity
Hangout: mejmeeks at gmail.com, Skype: mmeeks
(M) +44 7795 666 147 - timezone usually UK / Europe
More information about the LibreOffice
mailing list