Linux で動作する Java アプリケーションを作成しています (Sun の JDK を使用)。ディレクトリを作成し続けますが/tmp/hsperfdata_username
、これを防ぎたいと思います。Javaがこれらのファイルを作成するのを止める方法はありますか?
8 に答える
JVM オプション-XX:-UsePerfData を試す
以下は、リンク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.
JVM オプションを使用します-XX:-UsePerfData
。
他のいくつかの回答が言うように、これがパフォーマンスに悪影響を与えることはありません。
デフォルトでは、HotSpot JVM で jvmstat 計測がオンになっています。JVM オプション-XX:-UsePerfData
はそれをオフにします。どちらかといえば、インストルメンテーションをオフにするとパフォーマンスが向上すると推測します (わずかな量)。
したがって、jvmstat インストルメンテーションをオフにすることの欠点は、パフォーマンス監視情報が失われることです。
jvmstat については、http://java.sun.com/performance/jvmstat/で説明されています。
これは、 jvmstat をオプションでオンにすることでパフォーマンスが低下するのではないかと心配している人とのスレッド-XX:+UsePerfData
です。
http://www.theserverside.com/discussions/thread.tss?thread_id=33833
(jvmstat は「常にオン」になるように設計されているため、パフォーマンスへの影響はほとんどありません。)
オフにするのではなく、java.io.tmpdir の場所を変更してください。-Djava.io.tmpdir=/mydir/somewhere/else/ を Java 起動コマンドに追加すると、ファイルは制御する場所になります。
@simonc のコメントに注意してください。これは JVM のいくつかのバージョンでのみ機能し、サポートされなくなりました。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を参照してください。
"-XX:+PerfDisableSharedMem"
オプションを使用するよりもパフォーマンスの問題が少ないオプション(Sunが推奨)もあります"-XX:-UsePerfData"
。
svristのリンクから:
http://java.sun.com/performance/jvmstat/faq.htmlの最初の項目には、機能スイート全体を無効にするためにオフにできるオプションが記載されています:-XX:-UsePerfData。
提出されたバグレポートによると、回避策があります。
この文書化されていないオプションは、perfdata機能を無効にします:
-XX:-UsePerfData
ただし、これは機能であり、バグではありません。上記の回避策は、機能を無効にするだけです。