我有一个大数组(10+ 百万个对象),我想将它组合成一个对象(为简单起见,我们假设这里是一个字符串)并通过一些处理(由函数抽象)运行数组中的每个元素do_stuff
。有两种自然的方法可以做到这一点:
memo = ""
big_array.each do |e|
memo << do_stuff(e)
end
memo
和
big_array.reduce("") do |memo, e|
memo + do_stuff(e)
end
reduce/inject 语法在美学上更具吸引力,但问题是哪个内存效率更高。我们已经知道each 比 reduce 更节省时间,但是内存呢?
我也不清楚如何分析 Ruby 中的内存使用情况,尤其是仅通过一段代码,所以如果有人可以提供一些指向我也将不胜感激的指针。