jni memory problem

Status
Nicht offen für weitere Antworten.

hagbard23

Mitglied
Hallo zusammen,
ich habe ein seltsames Problem in unserer java Anwendung. Es handelt sich um eine eclipse rcp anwendung, in der ungefähr 200 mb java objekte allokiert werden, die Referenzen auf unter Umständen über einen Gig native, per jni gewrappte c++ Objekte halten.
Auf den bis jetzt getesteten System läuft alles normal. Auf einem unserer Rechner (8 core , 4 gb ram, xp32) verhält sich das Programm jedoch äußerst seltsam. Es wird zu viel Speicher für die Wrapper Klassen allokiert, bis ca. 1,5 gb. Dann releast das System wieder auf ca. 800 mb , was ungefähr das normale Level ist. Danach alles normal, bis das Programm bei 1,6 gb mit out of mem crasht.

Weis dazu jemand etwas?
 

Wildcard

Top Contributor
Vielleicht liegt die native Bibliothek auf diesem Rechner in einer anderen Version vor, oder so?
 

hagbard23

Mitglied
ne, leider nicht. Ich baue die dll's mit rein. Aberich habe auch überprüft was er anzieht , und das ist schon das richtige. Das völlig mysteriöse ist allerdings, das , wie gesagt, der Speicher bis an die obere Prozessgrenze voll läuft und dann 600 mb releast werden, ohne das der Benutzer was zu tut. Das muß also durch die VM oder die native Bibliothek passieren. Ist allerdings der selbe Build und die selbe VM (1.5.) wie auf einem Rechner, an dem alles normal passiert. Also ich vermute irgenwelche Speicher Abnormitäten durch JNI auf Multicore Rechnern.
 

Wildcard

Top Contributor
ne, leider nicht. Ich baue die dll's mit rein. Aberich habe auch überprüft was er anzieht , und das ist schon das richtige. Das völlig mysteriöse ist allerdings, das , wie gesagt, der Speicher bis an die obere Prozessgrenze voll läuft und dann 600 mb releast werden, ohne das der Benutzer was zu tut.
Das ist Standard und gewollt.
Der GC räumt nicht (viel) auf solange das System beschäftigt ist. Wenn du jedoch an die oberer Grenze stößt, legt der GC zur Not das ganze System lahm um sofort Speicher freizugegeben. Das ist sozusagen die Notfallstrategie, da die VM abschmieren würde wenn bei Maximalauslastung weiterer Speicher allokiert werden müsste.
 

hagbard23

Mitglied
Ja weiß ich schon. Aber das passiert in einem Stress Test, bei dem keine Objekte , die jni referenzen auf jni gewrappte Objekte halten, releast werden. Somit sollte der GC auch gar nichts zum aufräumen haben.

Und wie gesagt, warum verhält es sich auf den anderen Systemen ganz normal. Es wird ja auch viel zu viel allokoiert , um überhaubt so hoch zu kommen. Erst nach dem freigeben ist der Lauf wieder auf einem ähnlichen Level wie auf einem anderen System,.
 

Wildcard

Top Contributor
Dann wäre doch eine Möglichkeit das der JNI Teil gleich funktioniert und (warum auch immer) du den Speicher mit Plain Old Java Objects zumüllst?
Schonmal einen Heap Dump gezogen? Auch die VisualVM kann bei solchen Diagnosen wunder bewirken.
 

hagbard23

Mitglied
hmm...ne kann eigentlich nicht sein, den der heap ist auf 256m eingestellt. Er gibt aber weit mehr frei. Es muss sich also um native Daten handeln. Ja ich habe mir das mal kurz mit JConsole angesehen, aber das gibt wenig aufschluss.
Gibt es eigentlich ein Tool, mit dem man sowohl Java, alsauch native Teile sehen kann?
 

Wildcard

Top Contributor
Dann kann da aber etwas nicht zusammenpassen. Du sagst die nativen Teile sind stark referenziert und können daher nicht Garbage Collected werden. Genau das passiert aber und sofern der GC selbst keinen wirklich üblen Bug hat (und darauf würde ich jetzt mal nicht wetten) ist eine dieser Aussagen nicht korrekt:
1. der GC gibt Speicher wieder frei
2. der freigegebene Speicher kommt aus den nativen Objekten
3. die nativen Objekte sind stark referenziert und können nich collected werden
 

hagbard23

Mitglied
Ich seh ja auch nur Symtome, also sprich ein zu starker Anstieg des Speicherverbrauches im Windows Taskmanager bis ca. 1.5 gig und dann einen Abfall auf 800 mb. Im übrigen werden die Daten selbst nicht freigeben (man sieht sie noch; es sind gerenderte 3D Daten). Was da den Speicher freigibt, weis ich nicht. Soweit ich mich mit der VM auskenne, wird nur selten Speicher an das System releast, auch wenn der Java Heap aufgeräumt, hält die VM den speicher (-> grausiges Verhalten). Das spricht doch gegen die Pojo Theorie.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Foreign Memory API / Memory-Mapped File Allgemeine Java-Themen 0
C Durch klicken von Button in GUI wird leeres Fenster geöffnet und nicht mein Spiel "Memory" Allgemeine Java-Themen 13
E Java Shared Memory? Allgemeine Java-Themen 6
B Java Sound Memory Overload Allgemeine Java-Themen 0
P Memory Editing mit JNA, tutorial? Allgemeine Java-Themen 3
Q Memory-Leak in BlockingQueue Allgemeine Java-Themen 3
E Zweidimensionales Array Integer[10 000][10 000] -> out of memory? Allgemeine Java-Themen 4
X Bild im Memory zwischen speichern Allgemeine Java-Themen 11
T Java Memory Puzzle Allgemeine Java-Themen 6
S Memory Leak!!! Allgemeine Java-Themen 7
dayaftereh JVM Memory Usage Allgemeine Java-Themen 5
Z Schwankung "Total Memory"? Allgemeine Java-Themen 8
L Methode "Neues Spiel" für Memory Allgemeine Java-Themen 2
L Brauche Hilfe bei Memory Programmierung Allgemeine Java-Themen 2
H Tomcat VM out of memory Allgemeine Java-Themen 7
M File im memory erzeugen Allgemeine Java-Themen 5
F Frage zu Memory Leak, Garbage Collection und Profiler-Tools Allgemeine Java-Themen 6
P Java Memory Leaks Allgemeine Java-Themen 12
J Out Of Memory - Speicher vergrößern? Allgemeine Java-Themen 2
C ArrayList Out of Memory Allgemeine Java-Themen 28
P out of memory -> heap wächst und wächst Allgemeine Java-Themen 7
J RAM freimachen mit KOmprimiertem in-memory-swap Allgemeine Java-Themen 7
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0
S Problem mit Arrays Allgemeine Java-Themen 1
D Nullpointer Exception Problem Allgemeine Java-Themen 5
B Problem mit meinen Klassen Allgemeine Java-Themen 6
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
X Profitable Reise Problem Allgemeine Java-Themen 32
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Clear-Problem Allgemeine Java-Themen 10
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S JFileChooser Problem Allgemeine Java-Themen 4
M Traveling Salesman - MST Heuristik Problem Allgemeine Java-Themen 4
J Traveling Salesman Problem Allgemeine Java-Themen 14
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
Javafan02 Problem mit if-clause Allgemeine Java-Themen 17
J Lombok Problem mit Konstruktoren bei Verberbung Allgemeine Java-Themen 1
kodela Event Handling Problem mit der Alt-Taste Allgemeine Java-Themen 16
W Threads Problem Allgemeine Java-Themen 15
D (Verständnis-)Problem mit Unterklasse Allgemeine Java-Themen 4
S Problem mit Generic bei unmodifiableCollection Allgemeine Java-Themen 4
S jserialcomm Problem Allgemeine Java-Themen 1
Flynn Thread-Problem... Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
G Problem beim GUI Allgemeine Java-Themen 9
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19

Ähnliche Java Themen

Neue Themen


Oben