Подтвердить что ты не робот

Как я могу запретить Java создавать файлы hsperfdata?

Я пишу приложение Java, которое работает в Linux (используя Sun JDK). Он продолжает создавать каталоги /tmp/hsperfdata_username, которые я хотел бы предотвратить. Есть ли способ остановить Java от создания этих файлов?

4b9b3361

Ответ 1

Попробуйте вариант JVM -XX: -UsePerfData​​strong >

подробнее

Может быть полезно следующее: ссылка 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: -UsePerfData​​p >

Стоит отметить, что это особенность, хотя и не ошибка. Вышеописанная работа просто отключает эту функцию.

Ответ 7

Существует также опция "-XX:+PerfDisableSharedMem" (рекомендуется Sun), которая должна вызывать меньше проблем с производительностью, чем использование опции "-XX:-UsePerfData".