【发布时间】:2011-03-24 08:41:56
【问题描述】:
Java 对多线程环境的并行收集 GC 的优化程度如何?我编写了一些多线程 Jython 代码,大部分时间都在调用 Java 库。根据我运行程序的选项,库调用要么在后台进行大量分配,要么几乎没有。当我使用需要大量堆分配的选项时,我无法让代码扩展到超过 6 个内核。当我使用不需要大量分配的选项时,它至少可以扩展到 20 个。考虑到我使用的是 Sun VM、并行 GC 和 Jython,这与 GC 瓶颈有关的可能性有多大作为我的胶水语言?
编辑:澄清一下,我不一定会想到对 Java 资深人士来说显而易见的东西,因为我几乎从不使用 Java/JVM 语言。我的大部分编程都是用 D 和 Python 的旗舰 CPython 实现。我将 JVM 和 Jython 用于一个小型一次性项目 b/c 我需要访问 Java 库。
【问题讨论】:
-
您使用哪些选项?这似乎是 ThreadPool 问题,而不是 GC 问题。
-
@Thierry:这些选项特定于我的程序,就调用了哪些库函数而言。我什至没有使用线程池。
标签: java multithreading garbage-collection jython parallel-processing