Я пишу приложение Java, которое работает в Linux (используя Sun JDK). Он продолжает создавать каталоги /tmp/hsperfdata_username
, которые я хотел бы предотвратить. Есть ли способ остановить Java от создания этих файлов?
Как я могу запретить Java создавать файлы hsperfdata?
Ответ 1
Попробуйте вариант JVM -XX: -UsePerfDatastrong >
Может быть полезно следующее: ссылка 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.
Ответ 2
Используйте параметр JVM -XX:-UsePerfData
.
Это не повлияет на производительность, как говорят некоторые другие.
По умолчанию в JSM HotSpot включена утилита 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 предназначен для "всегда включен", но имеет незначительное влияние на производительность ".)
Ответ 3
Вместо того, чтобы отключать его, измените местоположение java.io.tmpdir. Добавить -Djava.io.tmpdir =/mydir/something/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 для получения дополнительной информации.
Ответ 4
EDIT: информация об очистке и суммирование
Резюме:
- Его особенность, а не ошибка
- Его можно включить с помощью -XX: -UsePerfData, который может повредить производительность
Релевантная информация:
Ответ 5
От ссылки svrist:
В первом элементе http://java.sun.com/performance/jvmstat/faq.html упоминается опция, которую вы можете отключить, чтобы отключить весь набор функций: -XX: - UsePerfData.
Ответ 6
В соответствии с зарегистрированным отчетом об ошибках существует обход:
Этот недокументированный параметр отключается функция перформации:
-XX: -UsePerfDatap >
Стоит отметить, что это особенность, хотя и не ошибка. Вышеописанная работа просто отключает эту функцию.
Ответ 7
Существует также опция "-XX:+PerfDisableSharedMem"
(рекомендуется Sun), которая должна вызывать меньше проблем с производительностью, чем использование опции "-XX:-UsePerfData"
.