Erzeugt ein besserer/neuerer C- oder C++-Compiler leistungsfähigeren kompilierten Code? Oder ist die Leistung beim Kompilieren einfach nur schneller/besser?

Erzeugt ein besserer/neuerer C- oder C++-Compiler leistungsfähigeren kompilierten Code? Oder ist die Leistung beim Kompilieren einfach nur schneller/besser?

Ich selbst bin kein C- oder C++-Programmierer, verwende jedoch häufig Software, die kompiliert werden muss oder anderweitig von einem Compiler abhängt, wie beispielsweise einige R-Pakete.

Wird die Leistung dieser Software tatsächlich besser sein, wenn ich einen neueren/besseren Compiler verwende? Derzeit verwende ich beispielsweise die Mac OS X-Systemversion von Clang und mir wurde empfohlen, stattdessen eine neuere Version zu verwenden. Ist das nur ein Vorschlag, um beim Kompilieren Zeit und Speicher zu sparen? Oder wird dadurch tatsächlich effizienter kompilierte Software erstellt?

Antwort1

Wird die Leistung dieser Software tatsächlich besser sein, wenn ich einen neueren/besseren Compiler verwende?

Dies hängt ganz davon ab, ob in einer bestimmten Version an der Codeoptimierungsfunktion des Compilers gearbeitet wird.

Beispielsweise verwende ich derzeit die Mac OS X-Systemversion von Clang und mir wurde empfohlen, stattdessen eine neuere Version zu verwenden.

Sie sollten bei derselben Compilerversion bleiben, von der Sie wissen, dass sie funktioniert, es sei denn, Sie benötigen eine Funktion, die nur in einer späteren Version vorhanden ist. Sofern Sie nicht wissen, dass eine spätere Version etwas Effektiveres leistet, sollten Sie kein Upgrade durchführen.

Ist das nur ein Vorschlag, um mir beim Kompilieren Zeit und Speicher zu sparen?

Der Vorschlag scheint ehrlich gesagt zu 100 % meinungsbasiert zu sein. Wenn Sie der Person vertrauen, die diesen Vorschlag gemacht hat, sollten Sie ihn annehmen.

Ich möchte darauf hinweisen, dass ein Compiler Software ist und neuere Versionen neue Fehler einführen können, die zu schlechterer Leistung im Optimierungsablauf führen. Sie sollten nach einem Gleichgewicht suchen. Der beste Weg hierfür ist, immer die stabile Release-Version zu verwenden.

verwandte Informationen