G
guest
Gast
Hallo zusammen,
habe ein Programm entworfen, welches Operationen auf Strings ausführt, welche per Datei eingelesen werden.
Nun müsses diese Strings zunächst kategorisiert werden und werden dadurch einige Male kopiert.
Kleines Beispiel:
Nun werden nach bestimmten Kriterien (hier A, B ...) eigene Objekte angelegt (ein Objekt der Klasse A, B ...) und deren Felder initialisiert:
Die einzelnen Infos werden hierbei an irgendeiner Stelle per substring(int,int) erzeugt. Dadurch gibt es da ursprüngliche Stringobjekt plus alle substring-Tokens. ("kopiert")
Das ganze führt dazu, dass die Verarbeitung einer 20 MB Datei bis zu 100 MB RAM belegt.
Nun zur eigentlichen Frage:
Kann ich (zu Analyse-Zwecken) die aktuelle Größe des Heaps zur Laufzeit auslesen und am Bildschirm ausgeben, sodass ich sehe vor/nach welcher Aktion der Heap wie weit gewachsen ist?
Freue mich natürlich auch über Vorschläge zur besseren Realisierung.
Danke und Grüße.
habe ein Programm entworfen, welches Operationen auf Strings ausführt, welche per Datei eingelesen werden.
Nun müsses diese Strings zunächst kategorisiert werden und werden dadurch einige Male kopiert.
Kleines Beispiel:
Code:
//Datei:
A info1 info2 info3
B info4 info4
A ...
A ...
C ...
Code:
class A {
//...
public A(/*infos*/) {
this.info1 = info1;
this.irgendwas = tuIrgendwas(info2);
//...
}
//...
}
Das ganze führt dazu, dass die Verarbeitung einer 20 MB Datei bis zu 100 MB RAM belegt.
Nun zur eigentlichen Frage:
Kann ich (zu Analyse-Zwecken) die aktuelle Größe des Heaps zur Laufzeit auslesen und am Bildschirm ausgeben, sodass ich sehe vor/nach welcher Aktion der Heap wie weit gewachsen ist?
Freue mich natürlich auch über Vorschläge zur besseren Realisierung.
Danke und Grüße.