„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Können Compiler `New` Anrufe in C ++ optimieren?

Können Compiler `New` Anrufe in C ++ optimieren?

Gepostet am 2025-03-25
Durchsuche:508

Can Compilers Optimize Away `new` Calls in C  ?

Kann der Compiler Heap -Speicherzuweisungen eliminieren? Compiler können den Code optimieren, einschließlich der Entfernung unnötiger Aussagen. Können Compiler Heap -Speicherzuweisungen eliminieren, die mit Neuen hergestellt wurden?

Compiler Behaviour

Forschungsergebnisse zeigen, dass verschiedene Compiler mit Heap -Allokationen mit Heap -Allokationen umgehen:

g (5.2.0). ) Optimiert den neuen Anruf auch mit vollständigen Optimierungsflags.

  • Gültigkeit der Optimierung
Die Gültigkeit von Compiler -Optimierungen ist ein Thema der Debatte. Einige argumentieren, dass der Compiler neue Anrufe nicht optimieren darf, da er möglicherweise ein beobachtbares Verhalten aufweist (z. B. eine Ausnahme). Andere behaupten, dass die Optimierung neuer Anrufe zulässig ist, wenn der Compiler garantieren kann, dass kein beobachtbares Verhalten betroffen ist.

c 14 Standard

n3664: Die Klärung der Speicherzuweisung klären die Regeln für Kompiliereroptimierungen und Gedächtnisverkäufe. Damit können Compiler in bestimmten Szenarien rund um Speicherzuweisungen optimieren. Die Bestimmung wurde jedoch kritisiert, da sie möglicherweise gegen die Kausalität verstößt. Operator Neue Implementierungen in verschiedenen Übersetzungseinheiten könnten die Gültigkeit von Compiler -Optimierungen im Zusammenhang mit Heap -Zuteilungen beeinflussen. Während einige Compiler diese Optimierung basierend auf N3664 implementieren, bleibt ihre Gültigkeit ein Thema der Diskussion und hängt von bestimmten Umständen ab, einschließlich des C -Standards und dem Vorhandensein von benutzerdefinierten Speicherallocatoren.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3