Pregunta

Hace poco me enteré de escenarios que requieren que calientan una aplicación (con alto requerimiento de rendimiento) antes de que comiencen a atender las solicitudes reales. La lógica detrás de esto era permitir JIT a hacer su magia rendimiento!

¿Es esta una norma para aplicaciones Java o se hace generalmente esta memoria para aplicaciones (huella) pesadas?

¿Fue útil?

Solución

Si usted está hablando de un alto tráfico webapp / sitio web, entonces JIT es un problema muy pequeño. El mayor problema que se está calentando (poblado) todas las capas de caché que usted necesita tener. Ej Ehcache regiones que están siendo poblaron de hibernación . Esto se debe a operaciones relacionadas IO son varios órdenes de magnitud más lento que todo lo que sucede dentro de la CPU (es decir, a menos que esté calculando fractales:)

Otros consejos

La pregunta es, ¿cuándo desee ir fuera de su camino para hacer esto?

Si sacas a cabo una aplicación web, y es inmediatamente vivir, entonces mientras se está "calentando", estás añadiendo una carga extra, lo cual es contraproducente. Similar es cierto cuando se inicia una aplicación de escritorio. No hay punto en el calentamiento si el usuario va a comenzar inmediatamente el uso de la misma. O peor aún, no permitiendo al usuario interactuar mientras se está calentando la aplicación.

Si sacas a cabo una aplicación web, y se prueba el despliegue antes de que el punto a los equilibradores de carga a la misma, entonces usted ha calentado ya que como consecuencia lado.

Además de respuesta , puedo pensar de algunas otras cuestiones que requieren de calentamiento:

  • Objetos de instancias (carga lenta, únicos, etc.);
  • asignación del montón (si su Xms es más pequeño que su Xmx).

Me imagino que el sistema operativo en sí sintoniza con el comportamiento de una aplicación así, por lo que las llamadas del sistema operativo también pueden verse afectados por un período de calentamiento.

La mayoría de los anteriores (población caché, la inicialización del objeto) no son específicos de Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top