GCC vs Clang [Benchmarks]

OP #5507936
Lesenswert?
• ▲
▼
Grüß euch

Ich würde gerne die Diskussion rund um die Nutzung von Clang als 
Crosscompiler etwas anregen und habe aus diesem Grund ein Projekt mit 
einigen Vergleichs-Benchmarks angelegt.

Das Projekt läuft auf einem STM32F4Discovery und findet sich hier:
https://gitlab.com/higaski/GccVsClang_uC

Das Kurzfazit ist, dass Clang in meinen Augen als Crosscompiler bereits 
konkurenzfähig zum GCC ist. Die Compile-Zeiten sind entweder 
gleichwertig oder im Fall von Template-lastigem Code sogar wesentlich 
kürzer. Die erzeugen Binaries bewegen sich in etwa in der selben 
Größenordnung und die Fehlermeldungen sind aktuell ein Eck besser als 
die vom GCC (wobei GCC8 hier deutlich zulegen dürfte).

Negativ hervorheben muss man, dass Clang 6.0.1 einen lästigen Bug bei 
friend declarations hat über den ich nun schon mehrmals gestolpert bin. 
Außerdem ist Clang bei der Einhaltung des Standards wesentlich 
strikter... vor allem bei constexpr Nutzung. Ob das nun gut oder 
schlecht ist sei mal dahingestellt...


Die genauen Resultate zu den 6 Testfällen die ich compiliert hab finden 
sich im README.md des verlinkten Repos.
OP #5527736
Lesenswert?
• ▲
▼
GCC 8.2.0 legt beim Template Zeug zu, der Rest stagniert. War jedoch 
auch zu erwarten, da der Rest ja fast mehr C als C++ is und da einfach 
nicht mehr so viel Potential vorhanden ist.

Ein Devirtualisierungs-Beispiel wär noch gut... vielleicht kommt ich 
irgendwann mal dazu.

Projekt im Link ist aktualisiert.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.