我已經寫了一段時間循環程序在紅寶石,我可以看到它使用的內存明顯增長後,每個循環!Ruby的等價於PHP的「get_defined_vars」函數?
所以我對板式:
- 使用
GC.Start
在循環的結束,但它沒有影響 - 更改所有內部循環變量全局,但仍然使用每個循環後擡起內存。
那麼在Ruby中有沒有任何等價的PHP的「get_defined_vars
」函數來查看使我用過的內存像這樣增長?
我已經寫了一段時間循環程序在紅寶石,我可以看到它使用的內存明顯增長後,每個循環!Ruby的等價於PHP的「get_defined_vars」函數?
所以我對板式:
GC.Start
在循環的結束,但它沒有影響那麼在Ruby中有沒有任何等價的PHP的「get_defined_vars
」函數來查看使我用過的內存像這樣增長?
Kernel.local_variables
似乎是最接近的匹配
是的,肯定是最接近的一個,但是local_variables,也不是global_variable版本可以調試這個問題,因爲只有它們的一個版本被存儲,所以我真的不能忽略這裏的問題在哪裏。我已經發布了源代碼,如果你想看看它。 – cz3ch
我推薦你http://ruby-prof.rubyforge.org/。
這是一個相當詳盡的工具。
根據該主頁:
紅寶石教授可以測量多個不同的參數,包括 呼叫次數,內存使用和對象的分配。
編輯: 好像它被更多最近更新了其github上頁:https://github.com/rdp/ruby-prof
非常感謝這個工具,但我找不到錯誤在哪裏。如果你可以看看它,我已經發布了源代碼。 – cz3ch
請張貼在HTTPS代碼://gist.github。 com /如果這個問題太大。 – SirDarius
對不起。張貼在它上面。 – cz3ch
'GC.stress = true'似乎是排除RAM的唯一方法,但它會減慢腳本的速度 – cz3ch