Wie kann man feststellen, ob es sich beim Öffnen von nativem Code in Java um ein Speicherleck handelt oder nicht?

9

Ich rufe eine native Funktion in meinem main auf und sie befindet sich in einer while-Schleife.

%Vor%

Die Ausgabe des folgenden Programms ist: (läuft für ca. 1 min)

%Vor%

Ich denke, es ist kein Speicherleck. Aber wenn ich den Task-Manager von Windows öffne, nimmt die Größe des Prozesses javaw.exe zu (100 KB während jeder Iteration). Willst du wissen, ob es ein Speicherleck ist oder sollte ich es einfach ignorieren? ODER Bedeutet das, dass es in der nativen Funktion einen Speicherverlust gibt?

FYI ich habe meine native Funktion von Speicherlecks doppelt überprüft!

Danke!

BEARBEITEN:

Native Funktion:

%Vor%     
HashimR 23.11.2011, 06:56
quelle

2 Antworten

1

Ihre Erwartungen sind falsch. Sie können nicht erwarten, dass System.gc() mehr als ein Hinweis auf den Garbage Collector darstellt, und der Aufruf von finalize() yourself ist völlig inkorrekt.

    
EJP 23.11.2011 09:48
quelle
0

Ich denke, Sie müssen Komponententests schreiben, die den nativen Code direkt wie den Java-Code aufrufen, wie Mock-Tests.

    
Damian 28.01.2012 21:05
quelle

Tags und Links