gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 02:49:16 24 4
gpt4 key购买 nike

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

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

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

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

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

就我而言,这简直太愚蠢了。

我想知道是否有任何可能的方法来驯服这头野兽。也许以某种方式卸载我知道不需要或永远不会被引用的类。供应商不会很快做出改变。

或者只在必要时加载供应商的库怎么样?这样,它在与应用服务器通信时只会占用这么多内存。

最佳答案

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

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

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

顺便说一句:150 MB 内存的成本约为 6 美元,所以我不会花那么多时间来修复它。

关于java - 如何优化外部 Java 库的资源使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com