Kapitel 7. Hot Statements optimieren
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Die Idee ist schon da, und du musst nur noch den überflüssigen Stein entfernen.
Michelangelo di Lodovico Buonarroti Simoni (1475-1564), als Antwort auf die Frage: "Wie erschaffst du deine Meisterwerke?"
Die Optimierung auf Anweisungsebene kann als ein Prozess modelliert werden, bei dem Anweisungen aus dem Ausführungsstrom entfernt werden, ähnlich wie Michelangelo den Prozess der Bildhauerei seiner Meisterwerke beschrieben hat. Das Problem mit Michelangelos Ratschlag ist, dass er nicht darauf eingeht, welcher Teil des Steins überflüssig ist und welcher Teil das Meisterwerk darstellt.
Das Problem bei der Optimierung auf Anweisungsebene ist, dass abgesehen von Funktionsaufrufen keine C++-Anweisung mehr als eine Handvoll Maschinenbefehle verbraucht. Die Konzentration auf solche kleinen Optimierungen bringt in der Regel nicht genug Verbesserungen, um den Aufwand zu rechtfertigen, es sei denn, der Entwickler kann Faktoren finden, die die Kosten der Anweisung so stark erhöhen, dass sie sich für eine Optimierung lohnt. Zu diesen Faktoren gehören:
- Schleifen
-
Die Kosten der Anweisungen innerhalb einer Schleife werden mit der Anzahl ihrer Wiederholungen multipliziert. Schleifen müssen vom Entwickler identifiziert werden. Der Profiler kann auf eine Funktion verweisen, die eine heiße Schleife enthält, aber er sagt nicht, ...
Get Optimiertes C++ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.