Bien, la pregunta puede parecer tonta, pero lo estoy preguntando de todos modos.archivos JAR, ¿acaso no solo inflan y ralentizan Java?
Después de luchar durante horas para poner en marcha un proyecto Spring + BlazeDS, descubrí que estaba teniendo problemas con mi proyecto como resultado de no incluir las dependencias adecuadas para Spring, etc. Faltaban .jars de mi WEB -INF/lib carpeta, sí, tonto yo.
Después de un tiempo, logré obtener todos los archivos .jar a donde pertenecen, y llega a la friolera de 12.5MB, y hay más de de ellos! Lo cual me preocupa, pero probablemente y con suerte no debería preocuparme.
¿Cómo funciona Java en términos de estos archivos JAR, ocupan bastante espacio en el disco duro, teniendo en cuenta que es un código fuente comprimido y compilado. Entonces eso realmente puede llenar rápidamente mucha RAM y en un instante.
Mis preguntas son: cargar
¿El Java un archivo .jar entera en la memoria cuando decir, por ejemplo, una clase en la que se crea una instancia .jar? ¿Qué hay de las cosas que están en el .jar que nunca se usan?
¿Los .jars se almacenan en caché de alguna manera, para optimizar el rendimiento de la aplicación?
Cuando se carga un solo .jar, entiendo que la cosa se encuentra en la memoria y está disponible en varias solicitudes HTTP (es decir, durante la vida de la instancia del servidor en ejecución), a diferencia de PHP donde los objetos se crean sobre la marcha solicitud, ¿es correcta esta suposición?
Al usar Spring, estoy pensando, tenía que incluir todos esos frágiles .jars, ¿no sería mejor usar Java nativo, con al menos una solución ORM como Hibernate?
Hasta ahora, Spring simplemente tomó más tiempo configurando, espacio extra en el disco duro, memoria extra, consumo de CPU, así que estoy preocupado de que el framework cueste demasiado rendimiento de la aplicación solo para obtener, por ejemplo, IoC implementado con mi servidor BlazeDS.
Todavía tiene que venir ORM, un marco de prueba de unidades y partes y piezas aquí y allá. Es tan fácil hinchar un proyecto de manera rápida e irresponsable.
¿Dónde hago el trazo?
¿Qué sugerirías en lugar de archivos .jar? – immibis
Hice esta pregunta hace 6 años. Aquí hay algunas respuestas interesantes sobre cómo carga Java/vincula JAR. No estaba buscando una alternativa, sino que estaba interesado en la optimización. –