2011-04-27 51 views
0

我们当前正在使用JRuby运行Resque并遇到内存泄漏问题。关于Resque和Ruby/REE的好处之一是它使用fork语义将每个作业的内存泄漏分离出来,而不是每个虚拟机(每个作业分叉)。分离JRuby中线程的内存

它看起来并不像有分叉为有意义的JVM,但不知道选择,如果有事情可以在一个线程在收到停止事件隔离内存线程,以便由线程创建的所有内存做被破坏不管是否还有引用它。

回答

3

线程当然不是进程。如果你使用线程,你将与其余的进程共享一个公共的内存池,所以没有任何“由该线程创建的内存”的概念。有可能实现一个虚拟机,以使线程获得自己的内存空间,但在JRuby的情况下,它首先会挫败拥有本地线程的许多好处。

我的建议是与JRuby团队(例如我)合作找出泄漏事件,我们会解决它。磁共振成像方法是一种丑陋的创可贴,它只会让人懒得去处理代码中的记忆和资源管理。