2010-10-19 76 views
21

我遇到了Memcache問題,我在想知道知道我創建的對象有多大的最佳方法是什麼。如何測量Ruby對象的大小?

我唯一的解決方案是將它們放到Memcache中,它們以字節顯示它們的大小(順便說一句,我可以自定義Memcache的輸出嗎?我想要可讀的千字節...)。

謝謝

凱文

回答

17

優秀Eigenclass博客對,一旦一篇有趣的文章:

http://web.archive.org/web/20120126022146/http://eigenclass.org/R2/writings/object-size-ruby-ocaml

也有在ruby-talk上了很好的討論,這導致到Robert Klemme的一些代碼(Ruby Best Practices):

http://www.ruby-forum.com/topic/156648

http://www.pastie.org/217131

從第一條到腳本封堵值可能讓你開始,很可能是相當的教育。

你也可以檢查出memprof,但它更多的是對象引用和查找內存泄漏比實際尺寸:

http://github.com/ice799/memprof

+0

好吧,我只是意識到,因爲內存分配是每個實施不同的,我的問題比我想象的要複雜得多:-) – 2010-10-22 13:51:53

+3

第一個鏈接關閉了,這是存檔版本:http://web.archive.org/web/20100918225809/http://eigenclass.org/R2/writings/object -size-紅寶石ocaml的 – lulalala 2012-11-23 09:58:15