¿Cómo configurar los parámetros de inicio de jvm de myeclipse?
Configura el jvm para que se ejecute en modo interpretado y todo el código de bytes se ejecutará directamente sin compilar en código nativo.
-Xbatch
Desactiva la compilación de código en segundo plano y fuerza la compilación en primer plano. El código solo se puede ejecutar una vez completada la compilación.
De forma predeterminada, jvm es; compilado en segundo plano. Si no se completa la compilación, el código se ejecutará en modo interpretado en primer plano. p >
- Se utilizará a menos que sea necesario;
-Xbootclasspath/a:path
Agrega todos los archivos en la ruta especificada a la ruta de inicio predeterminada;
-Xbootclasspath/ p:path
Deje que jvm cargue todos los archivos en la ruta especificada antes de iniciar la ruta predeterminada;
-Xcheck:jni
Adjuntar verificación; a la función JNI; En este momento, jvm verificará la validez de los parámetros pasados a la función JNI. Cuando se encuentran datos ilegales en el código nativo, jmv informa un error fatal y finaliza. El uso de este parámetro puede provocar una degradación del rendimiento, así que utilícelo con precaución.
-Future
Deje que jvm realice una verificación de formato estricta en los archivos de clase (la jvm predeterminada no realiza una verificación de formato estricta) para cumplir con las especificaciones de formato de archivos de clase. Se recomienda que los desarrolladores utilicen este parámetro.
-Xnoclassgc
Desactive la función gc de la clase; debido a que evita el reciclaje de memoria, puede causar OutOfMemoryError, así que úsela con precaución.
- Nuevo cgc
p>Activar GC incremental (desactivado de forma predeterminada); esto ayuda a reducir las pausas de la aplicación durante la GC prolongada, pero puede ejecutarse simultáneamente con la aplicación, lo que reducirá la potencia de procesamiento de la CPU para la aplicación; .
-Xloggc: file
Similar a la función de -verbose:gc, solo registra información relevante de cada evento de gc en un archivo. La ubicación del archivo es preferiblemente local. evitar posibles problemas de red.
Si aparece en la línea de comando al mismo tiempo que el comando detallado, -Xloggc debería prevalecer.
-Xmsn
Especifique el tamaño inicial del montón jvm, el valor predeterminado es 1/64 de memoria física, el valor mínimo es 1M, puede especificar la unidad, como k, m, si no se especifica, el valor predeterminado es byte.
-Xmxn
Especifica el valor máximo del montón jvm, el valor predeterminado es 1/4 o 1G de memoria física, el mínimo es 2 m, la unidad es consistente con -Xms.
-Xprof
Rastrea programas en ejecución y datos de seguimiento de salida en salida estándar adecuada para depurar en un entorno de desarrollo.
-Xrs
Reduce el uso de señales del sistema operativo por parte de jvm. Este parámetro es válido a partir de 1.3.1;
A partir de jdk1.3.0, jvm permite que el programa ejecute algún código (como cerrar el grupo de conexiones de la base de datos) antes de cerrarse, incluso si jvm finaliza repentinamente.
La herramienta de apagado jvm cumple con las funciones anteriores al monitorear eventos relevantes de la consola. Más específicamente, antes de ejecutar la herramienta de apagado, la notificación primero registra el controlador de control de la consola y luego responde a Ctrl_c_event; , Ctrl_close_ evento, Ctrl_logoff_event y .
CTRL_SHUTDOWN_EVENT y otros eventos devuelven verdadero directamente.
Sin embargo, si el jvm se ejecuta en segundo plano como un servicio (como un motor de servlet), puede recibir el evento CTRL_LOGOFF_EVENT, pero no es necesario inicializar el programa de apagado en este momento. Para evitar que vuelvan a ocurrir conflictos similares, jdk1.3.1 proporciona el parámetro -Xrs después de configurar este parámetro, el jvm no recibirá el controlador de control de la consola, es decir, no monitoreará ni procesará CTRL_C_Event, CTRL_CLOSE_Event, CTRL_LOGOFF_Event; o.
Evento.
-Xssn
Establezca el tamaño de la pila de un solo subproceso, generalmente el valor predeterminado es 512k.
Estos parámetros, como -Xmsn y -xmxn, son parámetros muy importantes en nuestra optimización del rendimiento.
-Xprof, -Xloggc: archivo, etc. Todos son expertos en depuración sin herramientas de seguimiento profesionales;
-xbootclasspath/a:path;
Parámetros estables
Mencionamos los parámetros con el prefijo -XX anteriormente La tabla Es posible que no sea robusto en la JVM y no se recomienda SUN. Es posible que se cancele sin previo aviso. Sin embargo, muchos de estos parámetros nos son realmente útiles, como -XX:PermSize, -XX:MaxPermSize, etc., que vemos a menudo.
A continuación describiremos la lista de parámetros configurables de -XX: en Java HotSpot VM;
Estos parámetros se pueden dividir aproximadamente en tres categorías:
Opciones de comportamiento : se utiliza para cambiar algunos comportamientos básicos de jvm;
Ajuste de rendimiento: se utiliza para ajustar el rendimiento de jvm;
Parámetros de depuración (opciones de depuración
): se utilizan generalmente para abrir parámetros de jvm como seguimiento, impresión y salida para mostrar información más detallada sobre jvm;
Porque hay muy pocas descripciones de cada parámetro en los documentos oficiales de Sun (en su mayoría, solo una oración), y es Es difícil describirlo claramente, por lo que aquí hay algunos elementos de configuración que pueden usarse con más frecuencia en nuestro desarrollo. Si necesita ver una lista de todos los parámetros, puede hacer clic en HotSpot VM Specific.
Opciones. Ver el texto original;
Primero, introduzca los parámetros de comportamiento:
Parámetros y sus valores predeterminados
Descripción
-XX:- DisableExplicitGC
p>Llamar al sistema GC() está prohibido pero el gc de jvm sigue siendo válido.
-XX: MaxFDLimit
Maximiza el número de descriptores de archivos.
-XX: scavenbeforefullgc
El GC de nueva generación tiene prioridad sobre el GC completo.
-XX: UseGCOverheadLimit
Limita la proporción de tiempo que la jvm dedica a GC antes de lanzar OOM.
-XX:-UseConcMarkSweepGC
La generación anterior utiliza el algoritmo de intercambio de etiquetas concurrentes GC.
-XX:-UseParallelGC
Habilitar la recolección de basura paralela
-XX:-UseParallelOldGC
Habilitar el paralelismo para GC completo, cuando - xx: cuando -useparallelism está habilitado, el paralelismo se habilita automáticamente.
-XX: -UseSerialGC
Habilitar recolección de basura en serie
-XX: UseThreadPriorities
Habilitar prioridades de subprocesos locales
Los tres parámetros en negrita en la tabla anterior representan las tres formas de ejecución de GC en jvm, que son en serie, paralela y concurrente;
SerialGC es el modo de GC predeterminado de jvm, generalmente adecuado para aplicaciones pequeñas y monoprocesadores. El algoritmo es simple y la eficiencia del GC es alta, pero puede provocar pausas en la aplicación.
ParallelGC significa que cuando GC se está ejecutando, no tiene ningún impacto en la ejecución de la aplicación y los subprocesos de la aplicación se ejecutan simultáneamente, lo que puede mantener la aplicación ejecutándose al máximo.
ConcMarkSweepGC se refiere a la ejecución concurrente de GC por múltiples subprocesos. Generalmente es adecuado para sistemas multiprocesador y puede mejorar la eficiencia de GC, pero el algoritmo es complejo y el sistema consume mucho dinero.
Lista de parámetros de ajuste de rendimiento:
Parámetros y sus valores predeterminados
Descripción
-XX: LargePageSizeInBytes=4m
Establezca el tamaño de página grande para el montón de Java
-XX: MaxHeapFreeRatio=70
La proporción máxima de espacio libre en el montón de Java después de GC
-XX: MaxNewSize = tamaño
La cantidad máxima de memoria que puede ocupar un objeto recién generado.
-XX: MaxPermSize=64m
La cantidad máxima de memoria que pueden ocupar los objetos de la antigua generación.
-XX: minheafpreeratio = 40
La proporción mínima de espacio libre en el montón de Java después de GC
-XX: NewRatio=2
La relación entre la capacidad de memoria de la nueva generación y la capacidad de memoria de la generación anterior
-XX: NewSize=2.125m
El valor predeterminado de la memoria ocupada al generar una nueva generación de objetos.
-XX: ReservedCodeCacheSize=32m
Capacidad de memoria ocupada por código reservado
-XX: ThreadStackSize=512
Establecer la pila de subprocesos tamaño . Si es 0, se utilizará el valor predeterminado del sistema.
-XX: UseLargePages
Usar memoria de página grande
Básicamente usamos estas propiedades en negrita arriba en el ajuste diario del rendimiento;
Depurar Lista de parámetros:
Parámetros y sus valores predeterminados
Descripción
-XX:-CITime
Imprimir durante la compilación JIT Consume mucho tiempo.
-XX: Archivo incorrecto=. /hs_err_pid.log
Guardar registro de errores o datos en un archivo.
-XX:-extendeddtracepropers
Activa las sondas dtrace específicas de Solaris.
-XX:HeapDumpPath=. /java_pid.hprof
Especifique la ruta o el nombre del archivo al exportar información del montón.
-XX:-heapdumponotofmemoryerror
Vuelca información relevante en el montón cuando se encuentra OOM por primera vez.
-XX:
Ejecutar un comando personalizado después de un error fatal.
-XX: OnOutOfMemoryError = ";"
Ejecute un comando personalizado cuando se encuentre OOM por primera vez.
-XX:-PrintClassHistogram
Imprime la información de la columna de la instancia de clase después de encontrar Ctrl-Break, lo mismo que jmap -histo.
-XX:-PrintConcurrentLocks
Imprime información relacionada con bloqueos concurrentes después de encontrar Ctrl-Break, que tiene la misma función que jstack -l L.
-XX:-PrintCommandLineFlags
Imprime las etiquetas que aparecen en la línea de comando.
-XX:-PrintCompilation
Imprime información relevante al compilar el método.
-XX:-PrintGC
Imprime información relevante para cada GC.
-XX:-PrintGC detalles
Imprime información detallada de cada GC.
-XX:-printgcstimestamps
Imprimir la marca de tiempo de cada GC
-XX:-TraceClassLoading
Información de carga de clases de seguimiento p>
-XX:-TraceClassLoadingPreorder
Rastrea la información de carga de todas las clases a las que se hace referencia.
-XX:-TraceClassResolution
Grupo de constantes de seguimiento
-XX:-desinstalación de clase de seguimiento
Seguimiento de la información de desinstalación de esta clase .
-XX:-TraceLoaderConstraints
Información de seguimiento sobre las restricciones del cargador de clases.