tags:

views:

7155

answers:

7

I'm writing a Java application that runs on Linux (using Sun's JDK). It keeps creating /tmp/hsperfdata_username directories, which I would like to prevent. Is there any way to stop java from creating these files?

A: 

EDIT: Cleanup info and summarize

Summary:

  • Its a feature, not a bug
  • It can be turned of with -XX:-UsePerfData which might hurt performance

Relevant info:

svrist
The bottom of that page outlines a solution, that does indeed work.
rcreswick
Down votes are not hostile actions. They just reflect the percieved accuracy of your answer. Your original answer indicated it could not be solved ("Looks like you cant"). That just was not true.
Stu Thompson
+5  A: 

Try JVM option -XX:-UsePerfData

Performance likely will suffer.

more info

(sorry for the delete confusion. I did a little searching around and started to doubt my answer.)

Kyle Renfro
Thanks for undeleting!
rcreswick
+1  A: 

From svrist's link:

The first item in http://java.sun.com/performance/jvmstat/faq.html mentions an option which you can turn off to disable the whole suite of features: -XX:-UsePerfData.

Stu Thompson
+1  A: 

According to the filed bug report there is a work-around:

This undocumented option will disable the perfdata feature:
-XX:-UsePerfData

It's worth mentioning that it is a feature though, not a bug. The above work-around just disables the feature.

SCdF
A: 

You can attempt JVMs provided by other vendors to see if they implement this better. List of JVMs

martinatime
A: 

There is also "-XX:+PerfDisableSharedMem" option (recommended by Sun) which should cause less performance issues than use of "-XX:-UsePerfData" option.

Zweiberg
A: 

Use the JVM option -XX:-UsePerfData.

This will not have a negative effect on performance, as some other answers says.

By default jvmstat instrumentation is turned on in the HotSpot JVM. The JVM option -XX:-UsePerfData turns it off. If anything, I would speculate, turning off the instrumentation would improve performance (a trivial amount).

So the downside of turning off jvmstat instrumentation is that you lose the performance monitoring information.

jvmstat is described here http://java.sun.com/performance/jvmstat/

Here's a thread with someone who is worried that by turning on jvmstat - with the option -XX:+UsePerfData - will hurt performance. http://www.theserverside.com/discussions/thread.tss?thread_id=33833
(It probably won't since jvmstat is designed to be "'always on', yet has negligible performance impact".)

Jon Stafford