|
|
1
4
为你做任何事情160000次需要15秒吗?在您的系统上测试它,只返回x;很可能是hypot操作(用C实现)比解释器开销可以忽略不计。 对于ruby 1.8.7,使用khell的memonized get方法,在get方法内调用函数,在get方法内返回x,迭代次数为100000次: peregrino:$ time ruby src/memoized_hypot.rb real 0m1.714s user 0m1.436s sys 0m0.080s peregrino:$ time ruby src/plain_hypot.rb real 0m0.495s user 0m0.364s sys 0m0.060s peregrino:$ time ruby src/empty_hypo.rb real 0m0.369s user 0m0.220s sys 0m0.068s
调用hypot和仅返回x之间的差异表明hypot只占运行时的25%。这不是您应该优化的代码-如果可以,请尝试将调用内联到库中,而不是用另一种方法包装它。 peregrino:$ time ruby src/inline_hypot.rb real 0m0.365s user 0m0.236s sys 0m0.044s 那是
其中foo是一个方法已发布的对象。
|
|
|
2
3
试试这个:
|
|
3
1
我不指望这里的记忆力会提高 很多 在这种情况下。
我所做的只是
|