Frage

Ich schreibe eine Java-Anwendung, die unter Linux läuft (unter Verwendung des JDK von Sun).Es entsteht weiter /tmp/hsperfdata_username Verzeichnisse, was ich verhindern möchte.Gibt es eine Möglichkeit, Java daran zu hindern, diese Dateien zu erstellen?

War es hilfreich?

Lösung

Probieren Sie die JVM-Option aus -XX:-UsePerfData

Mehr Info

Das Folgende könnte hilfreich sein, da es sich um einen Link handelt https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

-XX:+UsePerfData

    Enables the perfdata feature. This option is enabled by default
    to allow JVM monitoring and performance testing. Disabling it 
    suppresses the creation of the hsperfdata_userid directories. 
    To disable the perfdata feature, specify -XX:-UsePerfData.

Andere Tipps

Verwenden Sie die JVM-Option -XX:-UsePerfData .

Dies wird keine negativen Auswirkungen auf die Leistung haben, wie einige andere Antworten sagen.

In der Standardeinstellung jvmstat Instrumentierung ist in der HotSpot JVM eingeschaltet. Die JVM Option -XX:-UsePerfData schaltet es aus. Wenn überhaupt, würde ich spekulieren, würde die Verbesserung der Instrumentierung Ausschalten Leistung (triviale Menge).

So ist die Kehrseite der jvmstat Instrumentierung ausgeschaltet ist, dass Sie die Performance-Monitoring-Informationen verlieren.

jvmstat wird hier beschrieben http://java.sun.com/performance/jvmstat/

Hier ist ein Thread mit jemandem, dass durch Drehen besorgt auf jvmstat - mit der Option -XX:+UsePerfData - wird die Leistung schaden. http://www.theserverside.com/discussions/thread.tss?thread_id=33833
(Es wird wahrscheinlich nicht seit jvmstat ist so konzipiert, „‚always on‘, noch vernachlässigbare Auswirkungen auf die Leistung hat“ zu sein.)

Anstatt dem Ausschalten, ändern Sie die java.io.tmpdir Lage. In -Djava.io.tmpdir = / mydir / irgendwo / else / in Ihren Java-Startbefehl und dann wird die Datei irgendwo sein, dass Sie steuern.


Kommentar von @simonc Hinweis: das funktioniert nur in einigen Versionen der JVM und wird nicht mehr unterstützt. Siehe http://bugs.sun.com/view_bug.do?bug_id=6447182 http://bugs.sun.com/view_bug.do?bug_id=6938627 http://bugs.sun.com/view_bug.do?bug_id=7009828 für weitere Informationen.

Aus dem Link von svrist:

Der erste Artikel in http://java.sun.com/performance/jvmstat/faq.html erwähnt eine Option, die Sie deaktivieren können, um die gesamte Funktionssuite zu deaktivieren:-XX:-UsePerfData.

Entsprechend der Fehlerbericht eingereicht Es gibt einen Workaround:

Diese nichtokumentierte Option deaktiviert die Perfordata -Funktion:
-XX:-UsePerfData

Es ist jedoch erwähnenswert, dass es sich um eine Funktion und nicht um einen Fehler handelt.Die obige Problemumgehung deaktiviert lediglich die Funktion.

EDIT: Cleanup Infos und zusammenfassen

Zusammenfassung:

  • Es ist ein Feature, kein Bug
  • Es kann mit -XX gedreht werden: -UsePerfData die Performance schaden könnte

Relevante Informationen:

Es gibt auch "-XX:+PerfDisableSharedMem" Option (empfohlen von Sun), die weniger Leistungsprobleme als die Verwendung von "-XX:-UsePerfData" Option führen sollte.

Als Nachtrag zu Mack Antwort (beantwortete 25. März '11 um 17:12 Uhr), sieht die Option java.tmp.dir nicht mehr verfügbar, da Java 8. Info Siehe unter: https://bugs.java.com/view_bug.do?bug_id=8189674

So die Option zu deaktivieren -XX: ein. -UsePerfData scheint die einzige Option nicht hsperfdata_ * Dateien zu haben

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top