【发布时间】:2013-04-01 08:06:12
【问题描述】:
分析应用程序我发现堆上有很多字符串。
在我的情况下,字符串是在堆上创建的,而不是被实习的,它们不是文字。
当应用程序中的字符串数量非常多时,是否需要遵循特定的 GC 调整技术。
我偶然发现了 GC 设置 -XX:+UseCompressedStrings 或 -XX+UseStringCache,但不确定这是否会有所帮助。有没有人尝试过这些设置?
java版本“1.6.0_22”
Java(TM) SE 运行时环境(内部版本 1.6.0_22-b04)
Java HotSpot(TM) 64 位服务器 VM(内部版本 17.1-b03,混合模式)
【问题讨论】:
-
根据我的经验,不要乱用 GC,它通常可以做得很好
-
最重要的是你不做的事情——不要,例如,重复地将一个字符串“分解”成下一个“token”和“the rest”。这种情况经常发生,并且可以让应用程序崩溃。
标签: java string memory memory-management garbage-collection