Looking at Code Size and Performance Kevin Muys
Hoe efficiënt is C++ vergeleken met C Hoe beïnvloed C++ het benodigde geheugen Oplossingen voor de problemen Besluit
C++ gebruiken zoals C => geen extra overhead Verbeterde type checking Object Georiënteerd -> performantieproblemen? Makkelijk hergebruik van code Makkelijker onderhoud
Hoe efficiënt is C++ vergeleken met C Hoe beïnvloed C++ het benodigde geheugen Oplossingen voor de problemen Besluit
Templates Inline functies Virtuele functies Inheritance Gedupliceerde debug informatie
1 klasse of functie voor verschillende datatypes Templates delen of niet? -> compiler beslist
Keyword inline Geen functieoproep nodig Soms onmogelijk om te inlinen - bij recursieve oproep - bij een complexe flow-of-control => geen performantiewinst + meer code
Via virtuele functie tabellen
Sommige compilers: Overal creëren waar ze opgeroepen worden Beter: Enkel creëren waar ze gedefinieerd worden
Sommige compilers: Voor elke afgeleide klasse -> kopie van de virtuele basis klasse Beter: 1 virtuele basis klasse
Vroeger: Debug info voor alles in included file, ook als het niet werd gebruikt =>Link tijd Debug tijd Hoeveelheid code
Hoe efficiënt is C++ vergeleken met C Hoe beïnvloed C++ het benodigde geheugen Oplossingen voor de problemen Besluit
Snellere compileer en link tijden Minder code
Vroeger van C++ -> C omzetten Nu rechtstreeks naar assembly Enkel rekening houden met gebruikte functies => link tijd
Compiler: Zorgen voor maar 1 virtuele functie tabel en 1 virtuele basis klasse Linker: Gedupliceerde code en data samen nemen Niet gebruikte code negeren
C++ standaard taal voor programmeren van embedded systemen Compilatie technieken moeten zorgen voor compacte code C++ en C verschillende compileertechnieken Vragen?