2011-04-27 50 views
0

我們當前正在使用JRuby運行Resque並遇到內存泄漏問題。關於Resque和Ruby/REE的好處之一是它使用fork語義將每個作業的內存泄漏分離出來,而不是每個虛擬機(每個作業分叉)。分離JRuby中線程的內存

它看起來並不像有分叉爲有意義的JVM,但不知道選擇,如果有事情可以在一個線程在收到停止事件隔離內存線程,以便由線程創建的所有內存做被破壞不管是否還有引用它。

回答

3

線程當然不是進程。如果你使用線程,你將與其餘的進程共享一個公共的內存池,所以沒有任何「由該線程創建的內存」的概念。有可能實現一個虛擬機,以使線程獲得自己的內存空間,但在JRuby的情況下,它首先會挫敗擁有本地線程的許多好處。

我的建議是與JRuby團隊(例如我)合作找出泄漏事件,我們會解決它。磁共振成像方法是一種醜陋的創可貼,它只會讓人懶得去處理代碼中的記憶和資源管理。