Re: Speicherbedarf der globalen Variablen Kategorie: Programmierung (von André H. - 5.08.2006 21:45) | ||
Als Antwort auf Speicherbedarf der globalen Variablen von Bernd Rüffer - 2.08.2006 15:17 | ||
| ||
Hallo Bernd, > die Grö�e vom Programmcode und der Konstanten kann ich recht leicht ermitteln. > DOCH was ist mit Speicherbedarf der globalen Variablen? > Steht das irgendwo? > (Nachzählen ist bei grö�eren Projekten recht mühsam.) Gut, Nachzählen ist wirklich zu mühsam. Den belegte Platz für globale Variablen kann man über die VMC-Datei nach dem Kompilieren herausbekommen. �ffne dazu die VMC-Datei mit einem Texteditor. (z.B. Notepad) Nach den ersten drei Zeilen, welche die Kennung, die Anzahl der Konstanten-Bytes, sowei die Anzahl der VM-Words enthalten und einer Leerzeile, kommt die erste Konstantenzeile. Die ersten beiden (Byte-)Zahlen sind das Word, welches die Anzahl der Threads enthält. Die nächsten Zahlen enthalten den Word-Thread-Offset des ersten Threads, also die Startadresse. Danach kommt das Word für den Stackpointer des ersten Threads. Die Words sind immer mit LSB first angegeben. Dazu mu� man jetzt wissen, da� pro Thread 20 Byte des RAM benötigt werden. Somit kann man den mit globalen Variablen belegten Speicherplatz folgenderma�en berechnen: Speicherplatz = "Stack-Pointer erster Thread" - ("Anzahl Threads" x 20) Wenn in der VMC die ersten 6 Zahlen folgenderma�en lauten: 3 0 0 0 57 1 , dann enthält das Programm 253 Byte an globalen Variablen. Bedenke, da� innerhalb von Threads definierte Variablen lokal sind, obwohl sie globalen Charakter haben: thread xy { int a, b, c; ... } Solche Variablen kann man aber ebenfalls aus der VMC-Datei herauslesen. (Jedoch an anderer Stelle.) MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: Speicherbedarf der globalen Variablen (von Bernd Rüffer - 8.08.2006 18:32) Re: Speicherbedarf der globalen Variablen (von André H. - 13.08.2006 15:44) |