基准测试需要一个块并返回时间:
http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html
http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html
require 'benchmark' puts Benchmark.measure { "a"*1_000_000 }
如果您想对操作进行基准测试并获得返回值和已用时间,该怎么办?
或者,换句话说,闭包可以修改传递给它的对象吗?
解决方法
闭包可以修改其范围内的对象,如下所示:
require 'benchmark' a = nil puts Benchmark.measure { a = "a" * 1_000_000 } puts a.size # => 0.000000 0.000000 0.000000 ( 0.004865) # => 1000000