SW-Entwicklung und Implementierung

Modernes C++: Elemente für performante Embedded Systeme

Performanter Code hat in vielen Anwendungen höchste Priorität. Tatsächlich hält C++ viele Elemente bereit, um genau das zu erreichen, ohne faule Kompromisse bzgl. „sauberer“ Objektorientierung machen zu müssen. In einigen Teams werden jedoch genau diese Elemente nicht oder ungeschickt verwendet und damit das Potential mit C++ nicht ausgeschöpft. Performance-Tuning kann auf vielen Ebenen der SW-Entwicklung angesetzt werden. Dabei spielen der Einsatz geeigneter Bibliotheken, der professionellen Anwendung moderner Bausteine fürs Multithreading u.v.m. eine Rolle.

In Embedded Systemen spielen effizientes (oft echtzeitfähiges), deterministisches Management des Hauptspeichers eine große Rolle. Statemachines und Multithreading sind in den meisten Systemen heute kaum wegzudenken. In der individuell zugeschnittenen Schulung zeigen wir, wie Sie die für ihre Systeme zentralen Implementierungsaspekte mit modernen, robusten C++ Elementen abdecken ohne Effizienzeinbußen befürchten zu müssen. Selbstverständlich nehmen wir auch Bezug auf die in Frage kommenden Elemente des aktuellen C++17-Standards. Außerdem werden Regeln vorgestellt, wie man objektorientierte Entwürfe explizit in die Implementierung überführt. Je nach Ausrichtung werden in dieser Schulung vor allem sprachkernnahe Aspekte rund ums C++ Objektmodell besprochen oder zusätzlich weitere Aspekte, die von diversen Bibliotheken unterstützt werden.

Themenauswahl

  • Best Practices zur Unterscheidung: Run-Time-Stack- oder Heap-Objekte einsetzen
  • Effiziente Übergabe von Objekten als Parameter und Rückgabe
  • Temporäre Objekte und Return-Value-Optimierung
  • Der Move Constructor und sein Einsatz zur Performanzsteigerung
  • Effizientes Management dynamisch allozierter Objekte mit deterministischem Speicher- und Laufzeitverhalten
  • Beziehungen zwischen Objekten und wie bildet man sie optimal in C++ ab
  • Smart Pointer und deren Speicher- und Laufzeitverhalten
  • Welche Smart Pointer eignen sich in Embedded Systems
  • Object Pooling
  • Performante Container-Klassen der STL und Boost und deren Laufzeitverhalten
  • Allokatoren
  • Überblick: Moderne C++-Building Blocks für die Multithreading-Programmierung
  • Coroutinen vs. Multithreading
  • Lock-free Algorithmen und Container
  • Performance-Tuning in Multithreaded-Anwendungen
  • Leichtgewichtige Komponentenmodelle
  • Implementierung von State Machines mit Boost und anderen bekannten Bibliotheken
  • Eventing: Callbacks und Ereignissysteme

Jetzt Kontakt aufnehmen!