如何防止Java创建hsperfdata文件?

c-h*_*had 44 java performance report

我正在编写一个在Linux上运行的Java应用程序(使用Sun的JDK).它不断创建/tmp/hsperfdata_username目录,我想阻止.有没有办法阻止java创建这些文件?

Kyl*_*fro 32

尝试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.
Run Code Online (Sandbox Code Playgroud)

  • 只是要指出使用-XX:+ PerfDisableSharedMem或-XX:-UsePerfData之一将不允许JConsole,VisualVM和类似工具连接到JVM,除非您激活JMX. (3认同)

Jon*_*ord 31

使用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被设计为"'始终开启',但性能影响可以忽略不计".)

  • 另请参阅 Twitter 上一位软件工程师的博客文章:http://www.evanjones.ca/jvm-mmap-pause.html 在那里他描述了对垃圾收集器暂停时间的积极影响。 (2认同)