如题,想做一个memory profiler for Ruby,不知道有没有志同道合的朋友。
导师给的提议,在他看来是屁大点的事,我却拖拖拉拉的搞了一个学期还没个起色。
借口有很多,比如有很多授课,不停的有这个那个的“突发”事件之类。但是再不动手认真做,估计boss不会让我毕业了。
(顺便晒一下,boss是Ruby社区的No.2。但他本人不怎么会用Ruby :x 。他的最爱是C。)
boss没有给什么具体要求。个人简单的想法是:
1. 要能profile C 和 Ruby。 也就是说能测试Ruby解释器自己以及Ruby应用程序。
2. 具体说profile什么呢?其实就是4W: when where what and who
什么对象(What)在何时(When)什么地方(Where)被谁(who)给怎么了--创建了或回收了。
4. 还应该能记录GC动作的时间。
5. 最基本的是要能取得RubyVM的heap size和还空着多少。也就是对应Java的Runtime.totalMemory() 和 Runtime.freeMemory()两个方法。(Ruby尽然没有这两个方法确实让我吃了一惊)
其实,Ruby自己已经有了一些Heap profiling的模块或方法了。比如GC::Profiler和ObjectSpace模块。
但是都不能满足我上面所有的要求。比如最简单的第5条吧,虽然GC::Profiler的report生成的报告里有total memory这项,但是不能直接取得这个信息。而且,那个total memory的结果是否准确我现在也很怀疑。
基本是这个情况,对Ruby interpreter有兴趣的朋友可以找我,一起hack ruby!
导师给的提议,在他看来是屁大点的事,我却拖拖拉拉的搞了一个学期还没个起色。
借口有很多,比如有很多授课,不停的有这个那个的“突发”事件之类。但是再不动手认真做,估计boss不会让我毕业了。
(顺便晒一下,boss是Ruby社区的No.2。但他本人不怎么会用Ruby :x 。他的最爱是C。)
boss没有给什么具体要求。个人简单的想法是:
1. 要能profile C 和 Ruby。 也就是说能测试Ruby解释器自己以及Ruby应用程序。
2. 具体说profile什么呢?其实就是4W: when where what and who
什么对象(What)在何时(When)什么地方(Where)被谁(who)给怎么了--创建了或回收了。
4. 还应该能记录GC动作的时间。
5. 最基本的是要能取得RubyVM的heap size和还空着多少。也就是对应Java的Runtime.totalMemory() 和 Runtime.freeMemory()两个方法。(Ruby尽然没有这两个方法确实让我吃了一惊)
其实,Ruby自己已经有了一些Heap profiling的模块或方法了。比如GC::Profiler和ObjectSpace模块。
但是都不能满足我上面所有的要求。比如最简单的第5条吧,虽然GC::Profiler的report生成的报告里有total memory这项,但是不能直接取得这个信息。而且,那个total memory的结果是否准确我现在也很怀疑。
基本是这个情况,对Ruby interpreter有兴趣的朋友可以找我,一起hack ruby!