SW-Entwicklung und Implementierung

Effiziente C++ Entwicklung: Elemente für hochperformante 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++ performante Anwendungen zu erstellen nicht ausgeschöpft. Performance-Tuning kann auf vielen Ebenen der SW-Entwicklung angesetzt werden. Dabei spielt der Einsatz geeigneter Bibliotheken, der professionellen Anwendung moderner Bausteine fürs Multi-Threading u.v.m. eine Rolle.


Wie geht man als Entwickler mit Kenntnissen des C++ Sprachkerns und der Standardbibliothek an die sprachkernnahen Implementierungsaspekte eines Embedded Systems heran? In Embedded Systems spielen z.B. effizientes (oft echtzeitfähiges), deterministisches Management des Hauptspeichers eine große Rolle. Statemachines und Multi-Threading 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 neuen C++11/14 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.
Diese komprimierte Schulung richtet sich an Entwickler, die hauptsächlich im Embedded Systems Umfeld arbeiten.
Bitte beachten Sie auch die Schulung Effiziente C++ Entwicklung: Performante und robuste Anwendungen.

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 C++11 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
  • Allocators
  • Überblick: Moderne C++ Building Blocks für die Multi-Threading-Programmierung
  • Coroutinen vs. Multi-Threading
  • Lock-free Algorithmen und Container
  • Performance-Tuning in Multi-Threaded-Anwendungen
  • Leichtgewichtige Komponentenmodelle
  • Implementierung von State Machines mit Boost und anderen bekannten Bibliotheken
  • Eventing: Callbacks und Ereignissysteme

Telefon: 07247-954550
info@maurer-treutner.de