首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何优化外部java库的资源使用?

如何优化外部java库的资源使用?
EN

Stack Overflow用户
提问于 2013-02-04 23:34:46
回答 1查看 104关注 0票数 4

我有一个自己构建的实用程序,作为一个如此小的专门构建的实用程序,当我在测试过程中注意到它使用了150mb的内存时,我感到非常惊讶。我在堆设置为1MB的情况下运行它,但它仍然占用了超过50mb的内存。

在分析并花了一天的时间试图找出我哪里错了之后,我决定测试一个理论。我的实用程序连接到专有应用程序。该连接需要应用程序供应商提供的外部库。

我使用这个库编写了一个小的Hello World,并注意到了以下内容:

1)从供应商库中声明一个新对象会立即将内存使用量增加到50MB (主要是永久空间)

2)实际尝试连接到应用程序服务器时,内存使用量将增加到150MB。

在我看来,这是非常愚蠢的。

我想知道是否有任何潜在的方法来驯服这头野兽。也许会以某种方式卸载我知道不需要或永远不会被引用的类。供应商不会在短期内改变事情。

或者,如果只在必要时加载供应商的库呢?这样,在与应用程序服务器通信时,它只会消耗这么多内存。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-04 23:37:43

JVM只加载您实际使用的类。事实上,它只加载你实际使用的方法。例如,如果你在一个不使用的方法中有一个字节码错误,你就不会知道。;)

减少供应商库大小的最好方法是让他们改进它,或者自己编写。

不幸的是,分配的适当应用程序对资源不是很友好。他们的首要任务是正确性。:j

顺便说一句:150MB的内存大约需要6美元,所以我不会花太多的时间来修复它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14690026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档