2010-10-19 75 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