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