webdevqa.jp.net

Javaがhsperfdataファイルを作成しないようにするにはどうすればよいですか?

Linuxで(SunのJDKを使用して)実行するJavaアプリケーション)を作成しています。/tmp/hsperfdata_usernameディレクトリを作成し続けています。 Javaこれらのファイルの作成から?

44
c-had

JVMオプションを使用します-XX:-UsePerfData

他のいくつかの答えが言うように、これはパフォーマンスに悪影響を与えません。

デフォルトでは、jvmstatインスツルメンテーションはHotSpot JVMでオンになっています。 JVMオプション-XX:-UsePerfDataはオフにします。どちらかといえば、計装をオフにするとパフォーマンスが向上する(ごくわずかな量)と推測します。

そのため、jvmstatインスツルメンテーションをオフにすると、パフォーマンスモニタリング情報が失われるという欠点があります。

ここでjvmstatについて説明します http://Java.Sun.com/performance/jvmstat/

これは、onjvmstat-オプション-XX:+UsePerfData-パフォーマンスが低下します。 http://www.theserverside.com/discussions/thread.tss?thread_id=338
(jvmstatは「常にオン」になるように設計されているため、パフォーマンスへの影響はほとんどありません)。

31
Jon Stafford

スイッチをオフにするのではなく、Java.io.tmpdirの場所を変更します。 -Djava.io.tmpdir =/mydir/somewhere/else /をJava起動コマンドに追加すると、ファイルは制御する場所になります。


@simoncによるコメントに注意してください。これは、JVMのいくつかのバージョンでのみ機能し、サポートされなくなりました。 http://bugs.Sun.com/view_bug.do?bug_id=6447182http://bugs.Sun.com/view_bug.do?bug_id=6938627 を参照してください、 http://bugs.Sun.com/view_bug.do?bug_id=7009828 を参照してください。

4
Mack

Mackの返信(11年3月25日17時12分に回答)の補遺として、オプションJava.tmp.dirはJava 8以降利用できなくなっています。 https:の情報を参照してください。 //bugs.Java.com/view_bug.do?bug_id=8189674

したがって、-XX:-UsePerfDataを使用してオプションを無効にすることは、hsperfdata_ *ファイルを持たない唯一のオプションのようです。

1
user6494409

"-XX:+PerfDisableSharedMem"オプション(Sunが推奨)もあり、"-XX:-UsePerfData"オプションを使用した場合よりもパフォーマンスの問題が少なくなります。

1
Zweiberg

編集:情報を整理して要約する

概要:

  • その機能はバグではなく
  • -XX:-UsePerfDataで無効にでき、パフォーマンスが低下する可能性があります

関連情報:

1
svrist

Svristのリンクから:

http://Java.Sun.com/performance/jvmstat/faq.html の最初の項目には、機能のスイート全体を無効にするためにオフにできるオプション-XX:-UsePerfDataが記載されています。

1
Stu Thompson

提出されたバグレポート によると、回避策があります:

この文書化されていないオプションは、perfdata機能を無効にします。
-XX:-UsePerfData

ただし、これは機能であり、バグではないことに言及する価値があります。上記の回避策は単に機能を無効にします。

1
SCdF