Estoy escribiendo una aplicación Java que se ejecuta en Linux (utilizando Sun's JDK). Sigue creando directorios /tmp/hsperfdata_username
, lo cual me gustaría evitar. ¿Hay alguna forma de evitar que Java cree estos archivos?¿Cómo puedo evitar que Java cree archivos hsperfdata?
Respuesta
opción Try JVM -XX: -UsePerfData
El siguiente podría ser útil es decir, de enlace 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.
EDIT: Limpieza de información y resumir
Resumen:
- Su una característica, no un error
- Se puede activar de la -XX: -UsePerfData que podría perjudicar el rendimiento
información relevante:
La parte inferior de esa página describe una solución, eso sí funciona. – rcreswick
Los votos a la baja no son acciones hostiles. Simplemente reflejan la precisión percibida de tu respuesta. Su respuesta original indicó que no se pudo resolver ("Parece que no se puede"). Eso simplemente no era verdad. –
De enlace de svrist:
El primer elemento de http://java.sun.com/performance/jvmstat/faq.html menciona una opción que se puede desactivar para desactivar todo el conjunto de características: -XX: -UsePerfData.
De acuerdo con la filed bug report hay una solución alternativa:
Esta opción no documentada desactivará la función perfdata:
-XX: -UsePerfData
Vale la pena mencionar que es una característica, no es un error. El trabajo anterior simplemente desactiva la función.
También existe la opción "-XX:+PerfDisableSharedMem"
(recomendada por Sun) que debería causar menos problemas de rendimiento que el uso de la opción "-XX:-UsePerfData"
.
Utilice la opción JVM -XX:-UsePerfData
.
Esto no tendrá un efecto negativo en el rendimiento, como dicen otras respuestas.
De forma predeterminada, la instrumentación jvmstat está activada en la JVM HotSpot. La opción de JVM -XX:-UsePerfData
la apaga. En todo caso, especularía, apagar la instrumentación mejoraría el rendimiento (una cantidad trivial).
Por lo tanto, la desventaja de apagar la instrumentación jvmstat es que pierde la información de supervisión del rendimiento.
jvmstat se describe aquí http://java.sun.com/performance/jvmstat/
Aquí hay un hilo con alguien que está preocupado de que girando en jvmstat - con la opción -XX:+UsePerfData
- perjudicará el rendimiento. http://www.theserverside.com/discussions/thread.tss?thread_id=33833
(probablemente no desde jvmstat está diseñado para ser " 'siempre activa', sin embargo, tiene un impacto insignificante en el rendimiento".)
También vea esta publicación del blog de un ingeniero de Softare en Twitter: http://www.evanjones.ca/jvm-mmap-pause.html Allí describe un efecto positivo en los tiempos de pausa del recolector de basura. – Peter
En lugar de apagarlo, cambiar la ubicación java.io.tmpdir. Agregue -Djava.io.tmpdir =/mydir/somewhere/else/a su comando de inicio de Java y luego el archivo estará en algún lugar que controle.
Nota un comentario de @simonc: esto sólo funciona en algunas versiones de la JVM y ya no es compatible. Consulte 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 para obtener más información.
Sé que esta es una pregunta antigua, pero para los buscadores de Google: esto solo funciona en algunas versiones de JVM y ya no es compatible. Ver: 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. hacer? bug_id = 7009828. – SimonC
- 1. ¿Puedo evitar que Java EE cree una página web liviana?
- 2. Cómo evitar que vim cree (y abandone) archivos temporales?
- 3. Cómo evitar que Visual Studio cree automáticamente archivos de solución
- 4. directorio java hsperfdata
- 5. ¿Cómo evitar que un objeto se cree en el montón?
- 6. ¿Cómo evitar que Visual Studio cree la carpeta "Propiedades"?
- 7. Cómo evitar que java.lang.String.split() cree una cadena vacía principal?
- 8. ¿Es posible evitar que Django cree archivos .pyc mientras está en desarrollo?
- 9. ¿Cómo puedo permitir que php cree archivos con la misma propiedad que los archivos que los crearon?
- 10. ¿Cómo saber qué archivos cree que IE son "no seguros"?
- 11. Evitar que UIView cree un lienzo de dibujo muy grande
- 12. EC2 Java Api Espere hasta que se cree Ec2 Instance.
- 13. ¿Por qué Mercurial cree que mis archivos SQL son binarios?
- 14. ¿Cómo puedo evitar que mercurial empuje subrepos?
- 15. ¿Cómo puedo evitar que se seleccione texto?
- 16. ¿Cómo puedo evitar que CompileAssemblyFromSource pierda memoria?
- 17. ¿Cómo puedo abrir archivos que contienen acentos en Java?
- 18. ¿Cómo puedo evitar que mi función Ackerman desborde la pila?
- 19. ¿Cómo puedo ver qué teclas cree vim?
- 20. ¿Cómo puedo evitar que Chromium cree una ventana de host "WebViewHost" cuando se inicia el navegador web predeterminado del usuario?
- 21. ¿Cómo puedo evitar que una clase se herede en C#?
- 22. ¿Cómo evitar los archivos .pyc?
- 23. Cómo evitar que CouchDB cree revisiones de documentos al actualizar contadores simples
- 24. Cómo evitar que GROUP_CONCAT cree un resultado cuando no hay datos de entrada presentes?
- 25. ¿Cómo evitar que CMake cree un enlace simbólico para bibliotecas compartidas durante la instalación?
- 26. ¿Cómo impido que Vim cree comentarios automáticamente al presionar INTRO?
- 27. Java: Cómo evitar StackOverflowException
- 28. ¿Cómo puedo evitar que los usuarios cometan binarios en subversión?
- 29. Cómo evitar que log4net escriba en dos archivos separados
- 30. ¿Puedo evitar que Android mate mi aplicación?
¡Gracias por restablecer! – rcreswick
Solo para señalar que usar -XX: + PerfDisableSharedMem o -XX: -UsePerfData no permitirá que JConsole, VisualVM y herramientas similares se conecten a la JVM a menos que active JMX. – Eldelshell
Lamentablemente este enlace "más información" ahora está muerto (¡gracias a Oracle!) –