【发布时间】:2013-04-09 19:48:37
【问题描述】:
单线程消除了多线程应用程序中涉及的许多复杂性。
我想知道是否有可以利用单线程应用程序的垃圾收集器配置?
现在我在 Java 运行时环境版本中使用 UseConcMarkSweepGC,incrementalMode GC 设置:Java 1.6.0_22-b04
【问题讨论】:
-
不确定它是否真的有所作为? GC 调优是非常特定于应用程序的,线程不一定相关。您目前有 GC 问题吗?什么问题?你的对象模型是什么样的?等等......所有这些东西都比单线程与多线程更重要。
-
@Taylor 问题:进行分析我看到堆生成了很多字符串。我在想如果我增加 ParallelGCThreads 那么 GC 在 CMS 的 ConcurrentMarkingPhase 期间总体上会占用 cpu 而不是应用程序,但可以减少 GC 时间。因此,对于单线程应用程序,这可能是一个问题,对吧?在这个思路中,我在想有没有适合单个线程应用程序的好的设置
-
你需要那些字符串吗?重新创建相同的字符串?也许可以保留一些弱引用或像 whirly 这样的自动丢弃地图?
标签: java memory-management garbage-collection single-threaded