2010-08-26 18 views
14

Me preguntaba si el tamaño del archivo jar tiene alguna implicación para el rendimiento de la máquina virtual de Java.¿El tamaño de un archivo jar afecta el rendimiento de la JVM?

¿Habrá un punto en el que el archivo jar será demasiado grande para que la JVM no pueda funcionar con eficacia?

+0

Recientes y relacionados: http://stackoverflow.com/questions/3314815/does-a-war-file-size-affect-in-some-way-the-application-and-or-application-server – JoseK

Respuesta

10

Sí, el tamaño del archivo jar tiene implicaciones en el rendimiento. La pregunta más apropiada es, ¿tiene alguna implicación significativa? La respuesta a esa pregunta es no.

Sí, hay un punto donde el archivo jar se vuelve demasiado grande y afecta a la JVM. No sé dónde está, pero está en algún lugar cerca del tamaño de la memoria de tu sistema. Si la JVM no puede cargar todo el archivo JAR y las bibliotecas de Java en la memoria del sistema sin intercambio, esto ciertamente afectará el rendimiento.

Esto no es algo que deba preocuparse. No incluya archivos JAR en el classpath que no se estén utilizando. No incluya un montón de código en el archivo JAR de su proyecto que no esté siendo utilizado. Dudo mucho que esté creando una aplicación en cualquier lugar cerca del tamaño requerido para afectar el rendimiento de la JVM.

+0

Yup , hay muy pocas veces cuando importa el tamaño del frasco. Probablemente importe más cuando se distribuye una aplicación de escritorio, ya que nadie quiere una descarga de 500MB para un programa simple. Para las aplicaciones del lado del servidor, tomaría mucho "trabajo" para ser tan grande que importaba ... – bwawok

+1

Estoy completamente de acuerdo con esto, y mi experiencia ha sido muy similar. El lugar habitual donde el rendimiento se ve perjudicado mucho antes de que el tamaño de la clase esté en los algoritmos, o si tiene una clase muy grande. – aperkins

+1

Los principales culpables de la hinchazón de tarros son las aplicaciones empresariales/web, especialmente cuando se construyen con Maven. Se arrastran tantas dependencias y dependencias de dependencias que no es raro que una aplicación de tamaño modesto exceda los 50Mb de archivos jar. – locka

0

En mi opinión, el tamaño del frasco no es el factor a tener en cuenta cuando se intenta aumentar el rendimiento.

Si tiene grandes jarras, significa que tiene mucho código. Si tiene mucho código porque está trabajando en un proyecto complejo, todo está bien para mí. Si tienes grandes jarrones para un proyecto "simple", puede significar que el código debe estar pensando de nuevo => Las clases bien diseñadas son a menudo la forma de lograr el tamaño de código más pequeño y, por lo tanto, las jarras más pequeñas.

Cuestiones relacionadas