Размер библиотеки Java - PullRequest
3 голосов
/ 09 ноября 2009

Если мне дадут две библиотеки Java в формате Jar, в одной из которых нет наворотов, а в другой их много, которые в основном останутся неиспользованными .... мой вопрос:

Как большая, в основном неиспользуемая библиотека повлияет на производительность приложения? JVM выполняет ленивую загрузку классов, означает ли наличие большей библиотеки классов обязательно больший объем памяти?

Ответы [ 2 ]

7 голосов
/ 09 ноября 2009

Короткий ответ: классы загружаются всякий раз, когда они нужны в первый раз. Обратите внимание, что «необходимый» также означает «на который ссылается любой другой загружаемый класс».

Так что, если у вас есть целая куча классов, которые никогда не затрагиваются каким-либо активным кодом, он не будет загружен.

Если вы хотите точно узнать, какие классы и когда загружается JVM, вы можете вызвать команду / процесс java с параметром -verbose:class.

5 голосов
/ 09 ноября 2009

Цитата из здесь :

Когда загружается тип?

Это удивительно сложный вопрос отвечать. Это связано в значительной степени к значительной гибкости предоставленный, согласно спецификации JVM, JVM Реализации.

Загрузка должна быть выполнена до связывание и связывание должно быть выполнено до инициализации. Спецификация VM оговаривает сроки инициализация. Это строго требует что тип будет инициализирован на его Первое активное использование (см. Приложение A для список того, что составляет "активный использовать "). Это означает, что загрузка (и связывание) типа ДОЛЖНЫ быть выполнены в или до первого активного этого типа использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...