C++: Speichermodell

CppMem

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Um kleine Code-Abschnitte mit atomaren Variablen zu verifizieren, sollte ein statisches Code-Analyse-Tool wie CppMem eingesetzt werden. Denn menschliche Intuition hilft hier oft nicht weiter.
02:24

Transkript

Zum Abschluss meiner sukzessiven Optimierung habe ich für Sie noch einen wichtigen Tipp. Ich beschäftige mich jetzt wohl schon fünf Jahre mit dem C++-Speichermodell und Sie glauben gar nicht, wie viele Fehler ich selber gemacht habe. Und daher mein Tipp, verwenden Sie statische Code-Analyse-Tools, um Ihren Code auf Richtigkeit zu verifizieren. Explizit ein Tool will ich hervorheben. Das Tool nennt sich "CppMem" und bietet selbst in der Grundkonfiguration schon wahnsinnig viele Einsichten. Was können Sie machen? Das ist ein Online-Tool. Hier können Sie Ihren Code in einer Pseudo-C++-Syntax eingeben, dann lassen Sie ihn laufen. Hier unten geben Sie an, was Sie an dem ausgeführten Code interessiert. Hier sehen Sie zum Beispiel, "sb" steht für "Sequence Before", "Memory Ordered Before" oder "Sequencer Consistency", "Read From". Hier können Sie also sagen, welche Beziehungen Sie zwischen Ihren einzelnen Operationen interessieren. Im nächsten Schritt können Sie hier auswählen zwischen allen möglichen, verschränkten Ausführungen Ihres Source-Codes. Das heißt, er produziert Ihnen alle Ausführungen und Sie wählen hier aus. In erster Annäherung sollten Sie aber nur die Ausführung "next consistent" anschauen, weil das sind die Konsistenten, die also dem C++-Speichermodell entsprechen. Was Sie hier unten dann sehen, ist eine konkrete Ausführung. Wenn Sie ganz genau hier hinschauen, sehen Sie ein "dr", steht für "Data Race". Das heißt, diese Programmausführung hier oben besitzt "Data Race", ein kritischer Wettlauf, und damit ist das Programmverhalten undefiniert und wenn Sie das ganz genau hier anschauen, ist es das Beispielchen, das ich in der Lektion "Acquire-Release-Semantik" mit einer nicht atomaren Variable "x" verwendet habe. Hier habe ich Ihnen noch den Link auf CppMem hinterlegt und ich habe einige Blog-Artikel rundum CppMem und noch viele weitere, rundum das Speichermodell geschrieben, denn was Sie merken, ist, wenn Sie sich mit dieser Thematik beschäftigen, Sie werden immer neue Dinge hinzulernen und immer wieder aufs Neue Ihre Intuition hinterfragen müssen, weil Sie, insbesondere wenn Sie sich mit der "Relaxed-Semantic" beschäftigen, öfters Ihre Intuition brechen müssen.

C++: Speichermodell

Verstehen und nutzen Sie die Konzepte und die zugrundeliegenden TEchnolgien des Speichermodells in C++.

1 Std. 29 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.11.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!