2011-08-24 79 views
0

我已經寫了一段時間循環程序在紅寶石,我可以看到它使用的內存明顯增長後,每個循環!Ruby的等價於PHP的「get_defined_vars」函數?

所以我對板式:

  • 使用GC.Start在循環的結束,但它沒有影響
  • 更改所有內部循環變量全局,但仍然使用每個循環後擡起內存。

那麼在Ruby中有沒有任何等價的PHP的「get_defined_vars」函數來查看使我用過的內存像這樣增長?

+0

請張貼在HTTPS代碼://gist.github。 com /如果這個問題太大。 – SirDarius

+0

對不起。張貼在它上面。 – cz3ch

+0

'GC.stress = true'似乎是排除RAM的唯一方法,但它會減慢腳本的速度 – cz3ch

回答

3

Kernel.local_variables似乎是最接近的匹配

+0

是的,肯定是最接近的一個,但是local_variables,也不是global_variable版本可以調試這個問題,因爲只有它們的一個版本被存儲,所以我真的不能忽略這裏的問題在哪裏。我已經發布了源代碼,如果你想看看它。 – cz3ch

2

我推薦你http://ruby-prof.rubyforge.org/

這是一個相當詳盡的工具。

根據該主頁:

紅寶石教授可以測量多個不同的參數,包括 呼叫次數,內存使用和對象的分配。

編輯: 好像它被更多最近更新了其github上頁:https://github.com/rdp/ruby-prof

+0

非常感謝這個工具,但我找不到錯誤在哪裏。如果你可以看看它,我已經發布了源代碼。 – cz3ch