Java库大小

时间:2009-11-09 14:44:58

标签: java memory-management

如果我给了两个Jar格式的Java库,1个没有花里胡哨的东西,另一个有很多它们将大部分未使用....我的问题是:

较大的,大多数未使用的库如何影响应用程序的性能? JVM是否延迟加载类,是否拥有更大的类库必然意味着更大的内存占用量?

2 个答案:

答案 0 :(得分:7)

简短的回答是,只要首次需要,就会加载类。请注意,“needed”也表示“由正在加载的任何其他类引用”。

因此,如果您有一堆从未被任何活动代码触及的类,则不会加载它。

如果您想确切了解JVM正在加载哪些类以及何时加载,您可以使用-verbose:class选项调用java命令/进程。

答案 1 :(得分:5)

来自here的引用:

  

何时加载类型?

     

这是一个令人惊讶的棘手问题   回答。这在很大程度上是由于   具有显着的灵活性   由JVM规范提供给JVM   的实施方式。

     

必须先执行加载   必须执行链接和链接   在初始化之前VM规范   确实规定了时间   初始化。它严格要求   一个类型在其上初始化   首次有效使用(参见附录A)   什么构成“活跃的   使用“)。这意味着加载(和   必须执行一种类型的链接)   在该类型的第一个活动时或之前   使用