-
Temporärer Speicher nach free()
Hallo zusammen,
in einem Job wird ein C-Programm aufgerufen, welches mit malloc() und free() dynamischen Speicher reserviert und wieder vollständig freigibt.
Nach Aufruf von malloc() erhöht sich der Wert "Benutzter temporärer Speicher" um den entsprechenden Wert. Nach Aufruf von free() sinkt dieser Wert jedoch nicht. An dieser Stelle findet kein Aktivierungsgruppenwechsel statt.
Wie kann man nun prüfen, wieviel Speicher tatsächlich von diesem Job verwendet wird? Und wird der eigentlich freigegebene Speicher (durch free()) von anderen Jobs verwendet, wenn diese mehr Speicher benötigen?
Gruß
Matthias
-
In C/C++ läuft das ein wenig anders:
malloc() legt intern verwaltete Speicherblöcke an und fordert neuen Speicher, wenn alles belegt ist oder eben nicht ausreicht.
free() gibt nur den Speicherblock frei, und trägt ihn in eine Kette der freien Blöcke ein, kann aber den Speicher nicht physisch freigeben.
Der nächste malloc() / realloc() sucht den nächsten freien passenden Block und belegt diesen dann, wenn nichts groß genug, wird eben neuer Speicher angefordert.
Der Speicher wird insgesamt erst freigegeben, wenn das Programm tatsächlich aus der Aktivierungsgruppe entfernt wird (ähnlich *INLR=*ON).
Je nach Implementation gibt es hier halt die berühmten Memory-Leaks, da durch ständiges malloc()/free() der Speicher stark fragmentiert werden kann.
-
Vielen Dank für deine Antwort.
-
In C/C++ läuft das tatsächlich anders. Da passen doch beliebig viele Zeichen in ein 10stelliges Feld rein (Pufferüberlauf). Wer braucht da noch ein malloc()?
-
In C ja, in C++ normalerweise nicht, da z.B. Strings in einer Klasse gekapselt sind und malloc() überflüssig macht.
Es wird aber auch gerne gemischt, wenn man nicht rein objektorientiert arbeitet.
Stichwort: Codeinjection (Virale Infekte).
Übrigens: %alloc() und co. arbeiten ganz genauso und sind geführlicher als C++, da man beliebige Stukturen "based" deklarieren kann und beim verpointern ganz schnell was falsches verwendet wird.
Similar Threads
-
By Fucasdreh in forum NEWSboard Server Job
Antworten: 0
Letzter Beitrag: 10-01-07, 13:12
-
By kr1s in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 08-09-06, 11:59
-
By programmer06 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 14-07-06, 13:05
-
By STamms in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 12-05-06, 08:54
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks