Open Source im professionellen Einsatz
Linux-Magazin 06/2017

Modernes C++ in der Praxis – Folge 34

Selbstoptimiert

Mit der Move-Semantik und konstanten Ausdrücken besitzt modernes C++ eine kräftige Stellschraube, um die Performance einer C++-Anwendung in die richtige Richtung zu drehen.

71

Zehn Regeln [1] hat der Autor aufgestellt, die guten C++-Code auszeichnen (Abbildung 1), dieser Artikel widmet sich der dritten.

Während die Move-Semantik es erlaubt, billig zu verschieben statt teuer zu kopieren, führt C++ als »constexpr()« deklarierte Funktionen zur Übersetzungszeit aus. Dieses Optimierungspotenzial gilt es zu nutzen. Dazu genügt es, zwei grundlegende Regeln im Kopf zu behalten:

  • Implementiere Algorithmen mit Move-Semantik.
  • Erkläre Funktionen als konstante Ausdrücke.

Natürlich gibt es keine Regel ohne Ausnahme. So setzt zum Beispiel die zweite Regel voraus, dass der Entwickler einen C+Compiler einsetzt und dass die Funktion kleine syntaktische Einschränkungen aufweist. Die moniert der Compiler allerdings postwendend, sodass der Entwickler stets ein wohldefiniertes Programm erhält. Doch dazu später mehr.

[...]

Linux-Magazin Online veröffentlicht alle Print-Artikel, die seit 2001 im Linux-Magazin erschienen sind. Damit steht Ihnen ein hochwertig bestücktes Archiv bis hin zu den Beiträgen der aktuellen Ausgabe online zur Verfügung. Die über 3000 Artikel sind größtenteils kostenlos zugänglich, nur für Beiträge (als PDF) der jüngsten zehn Linux-Magazine ist eine kleine Gebühr fällig.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Erfrischend neu

    An der Sprache C++ ändert sich selten etwas. Doch nun steht mit dem C++0x ein neuer Standard vor der Tür, von dem Neulinge wie Könner profitieren sollen. Mit Move-Semantik, Lambda-Funktionen und Aggregatzuweisungen bringt er viele Modernisierungen in die Programmiersprache.

  • C++11

    Diese Folge geht ans Eingemachte von C++11: Sie zeigt, wozu Move-Semantik nützlich ist, erklärt Rvalues und Lvalues und deckt auf, was es mit dem doppelten &-Zeichen auf sich hat.

  • Bibliothek uSTL mit C++11-Move-Semantik

    Die Bibliothek uSTL, eine ressourcenschonende, teilweise Umsetzung der Standard Template Library für C++, ist in Version 2.0 verfügbar.

  • C++11

    Indem er das Zauberwort "constexpr" anwendet, erreicht der Programmierer, dass C++11 seine Ausdrücke bereits beim Kompilieren auswertet. Folgt er dabei den vorgefertigen Beschwörungsritualen, generieren solche konstanten Ausdrücke Performancegewinne.

  • C++11

    Die neue Zeitbibliothek von C++11 erweist sich als elementarer Bestandteil der Threading-Schnittstelle: Sowohl Threads, Locks und Bedingungsvariablen als auch Futures haben ein Verständnis von Zeit. Dank ihrer Unterstützung kann ein Entwickler unterschiedliche Wartestrategien verfolgen.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.