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.

Slides:



Advertisements
Verwante presentaties
Objectgeoriënteerd Programmeren in C++
Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
E1: Migreren naar MS Office 2007 Jeff Blox. Introductie •Trainer / Consultant CT&C Services •
Embedded systemen Embedded software.
Waar dienen al die toetsen eigenlijk voor?
Wat is het AnySurfer label? Een Belgisch kwaliteitslabel voor toegankelijke websites Bestaat uit een Basislabel en een Pluslabel Basislabel garandeert.
komt uit het Grieks en Latijn betekent slecht
Gegevensbeheer Karin Diederiks KOAC•NPC.
EVMINX4 Week 3 Algoritmen en Datastructuren (ALDAT)
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
You, Jet and Excel. Smart reporting.
De implementatie van de UIML standaard in UIML.NET Ingo Berben Eindwerk voorgedragen tot het behalen van de graad van bachelor in de informatica/ICT/kennistechnologie.
Programmeerparadigma’s
Over dingen die voorbijgaan Richard Philips Anet Gebruikersdag 15 juni 2011.
De koektrommel of de grabbelton
Assenstelsels en het plotten van Functies in LOGO
Communicatie bij ingenieurs
College LCA-techniek voor Duurzaam Bouwen Ir. H. van Nunen Prof. Ir. N.A. Hendriks 7S660 Wintertrimester 2003.
Schatten Robert de Hoog College 25 januari College Projectmanagement 25 januari Onderwerpen De methode van DeMarco Functiepunt analyse Complexiteits.
Vrij Technisch Instituut - Hasselt
Het verbeteren van een modulaire verificatie techniek voor aspect georiënteerd programmeren Alfons Laarman.
Nieuw in LIPS VLUG 2 26 juni 2006 Kristof Brams. Overzicht Vernieuwde editor Printervriendelijke pagina Statistieken Variabele fontgrootte Grootte van.
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
Optuigen van datastructuren
Bluetooth Communicatie tussen computer en Brick Computer zet de connectie op, Brick wacht Enkel communicatie van de Brick naar de computer Lejos API: NXTConnecion.
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Workshop PHP Een productencatalogus. Case Uitgever van software wil webpagina met productgegevens publiceren op basis van catalogus. Het gaat momenteel.
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
P. 1 Vakgroep Informatietechnologie Scanf voorbeeld #include int main(void) { int i=-1,j=-1,k=-1,l=-1; int b; b=scanf("%d %d %d %d",&i,&j,&k,&l); printf("res=%d.
Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 SoftwareOntwikkeling 1 Conditionele compilatie in C met de macropreprocessor.
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
Schatten Robert de Hoog College 9 mei College Projectmanagement 9 mei Onderwerpen De methode van DeMarco Functiepunt analyse Kleine projecten.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
Contracten voor Sandboxing gebaseerd op Stack Inspection Jan Smans, Bart Jacobs en Frank Piessens.
Mamut Kassa K.D.C Swakhoven
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
PHP & MYSQL LES 04 CMS: BEST PRACTICE. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Laat software voor je werken
Tircms03-p les 6 Templates. Functietemplates void verwissel(int &x, int &y); { int w=x;x=y;y=w;} Dezelfde functie voor meerdere types heet een functietemplate.
TypeScript Orde in de chaos!. Over mij Patrick Schmidt (Microsoft Certified Trainer) Trainer bij 4DotNet Mede-oprichter en architect BesteProduct.nl.
Refactoring en Unit Testing. Geschiedenis Hoe maken we complexe code duidelijker? Hoger abstractieniveau –Assembly –“Hogere” programmeertalen –Object-orientatie.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
tircms02-p les 1 Operating Systems practicum
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Besluiten omtrent ruimtelijke ontwikkelingen 15 casussen als voorbeelden.
Spreadsheets. Testen. Met spreadsheets.. |  Spreadsheet, het meest gebruikte (test) tool in de wereld …  Aan de slag: Spreadsheet PRA  Risico’s en.
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Programmeren.
Wordpress websites Zelf uw site bijhouden Partindag Maarten Pors.
Windows niet meer naar huis laten bellen Hoe kunnen we beletten dat windows10 alles gaat verklikken aan grote broer thuis.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
OOP en.NET. Objecten Is geen ‘nieuw’ mysterieus woord Overal om ons heen zien we objecten: – TV – Computer – Auto – Wasmachine – ….
Functional Web Applications Implementation and Use of Client-Side Interpreters Jan Martin Jansen.
C++ Les 1: introductie. Programmeren Programma’s scripts Websites libraries (Sound, GUI, netwerking…)
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
de verschillende soorten wiskunde
Programmeren.
Performance Tuning SSIS packages
Object georiënteerd programmeren
De programmeertaal C++
Door Dimitri Verspecht
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Direct Realisatie Les 3 HTML en CSS in s Direct Realisatie Les 3.
Moving objects in a geo-DBMS
Software Development fundamentals
Transcript van de presentatie:

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?