jb2works.comjb2works.com

jb2works.com > Reference Scanner > Frequently Asked Questions     eng | de

Reference Scanner Frequently Asked Questions
Wieviel Speicher benoetigt der Reference Scanner?
Die Laufzeit- und Snapshot Information wird im Java Heap angelegt. Der aktuell belegte Speicher wird in der Progressbar (Fortschrittsbalken) mit angezeigt. Wenn die Fortschrittsanzeige am Ende des Balken ist, wird weiterer Speicher fuer das Rendern der Information zu Html benoetigt. Die 'java -Xmx???M' Option legt fest, wieviel an Heap-Max Ihre Anwendung bekommt. Wenn '-Xmx' zu niedrig gesetzt ist, dann haengt die Anwendung eine Weile und endet schliesslich mit einer 'OutOfMemory' Exception.
Ein sicherer Wert ist Ihr Application Heap (nach gc) x 2.

Wie bekomme ich die Snapshots wieder los?
Sie koennen zur Startseite gehen und ein 'Clear Snapshots' aufrufen. Oder - Sie loggen sich einfach aus aus Reference Scanner.

Welche Optionen koennen sinnvoll abgeschaltet werden?
In Heap-Snapshots: Sie koennen einen einen Filter benutzen. Sie koennen Optionen wie das Balkendiagramm abschalten.
Bei Call Graphs: Sie koennen mit Include/Exclude-Optionen fuer Packages arbeiten. Siehe 'Reference Scanner Usage'.

Kann ich den Reference Scanner zweimal starten?
Nicht auf demselben Port. In diesem Fall sendet die spaeter gestartete Instanz einen Stop-Request an die zuerst gestartete. Sie koennen das Stop-Verhalten durch die folgende Option beeinflussen:

<!-- ${user.home}/.jb2works.com/refscan/ScannerConfig.xml -->
<stop-policy kill="false"/>


Diese Option ist bei Default 'false' was heisst dass nur der Reference Scanner Port geschlossen wird, aber die analysierte Applikation am Leben bleibt. Falls 'true' dann wird die Applikation geschlossen durch ein System.exit(0).

Kann ich den Port fuer den Reference Scanner aendern?
Sie koennen ein Jvm Argument '-Drefscan.port=xxxx' setzen.

Kann ich die Log Messages zur Konsole unterdruecken?
Ja, Sie koennen folgende Option setzen:

<!-- ${user.home}/.jb2works.com/refscan/ScannerConfig.xml -->
<be-quiet value="true"/>


Dies unterdrueckt Ausgaben auf die Konsole.

Kann der Reference Scanner alle Arten von Memory Leaks finden?
Nein. Leaks in native JVM Funktionen werden nicht entdeckt.

Koennen Sie ein Beispiel fuer einen native Memory Leak nennen?
Ja. Zum Beispiel koennen Sie vergessen, dispose() an einem JFrame zu rufen.

Kann ich den Reference Scanner aufrufen wenn ich einen Security Manager benutze?
Das haengt von den Restriktionen ab, die der Security Manager der Ausfuehrung von Java Code auferlegt. Siehe auch Security Policy unten.

Welche Security Policy Einstellungen sind noetig?
Der Reference Scanner muss in der Lage sein

  • das java.lang.Field Access Flag zu ueberschreiben via Reflection,
  • die System Property 'user.home' zu lesen,
  • Files auf dem lokalen Filesystem anzulegen, zu lesen, zu schreiben, zu loeschen,
  • eine java.net.ServerSocket auf dem Port des Reference Scanners zu betreiben.

  • Bei Default sind diese Einstellungen im JRE gesetzt.

    FAQ
    Wieviel Speicher benoetigt der Reference Scanner?

    Wie bekomme ich die Snapshots wieder los?

    Welche Optionen koennen sinnvoll abgeschaltet werden?

    Kann ich den Reference Scanner zweimal starten?

    Kann ich den Port fuer den Reference Scanner aendern?

    Kann ich die Log Messages zur Konsole unterdruecken?

    Kann der Reference Scanner alle Arten von Memory Leaks finden?

    Koennen Sie ein Beispiel fuer einen native Memory Leak nennen?

    Kann ich den Reference Scanner aufrufen wenn ich einen Security Manager benutze?

    Welche Security Policy Einstellungen sind noetig?


    Reference Scanner Usage