Mic*_*ael 7 java string profiling memory-leaks
我正在分析一个应用程序,并注意到52%(195MB)的内存正在使用char[],20%由String.这是一个有很多依赖项的大型项目,我刚看到它,所以我有几个相关的问题可以帮助我开始:
是否String s = "some text"创建了char []?
我注意到有数百个String s = new String("some text")没有明显的理由.这是罪魁祸首吗?
Pet*_*rey 10
String s ="some text"是否会创建char []?
这不会创建任何对象.
我注意到有数百个String s = new String("some text")没有明显的原因.这是罪魁祸首吗?
这将创建String的副本,并可能创建char [](两个对象).仅当String表示另一个字符串的子字符串时才会生成副本.
我会确保你有一个支持Java的版本-XX:+UseCompressedStrings 默认情况下,在Java的更高版本中启用它,并允许使用JVM,byte[]而不是char[]大小的一半.
但是,这些天400 MB并不是那么大,购买更多内存可能是最简单的解决方案.只需120美元即可获得16 GB.
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |