Các benchmark mất một khối và trả về thời gian: http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.htmlBenchmarking một hoạt động ruby trả về giá trị
require 'benchmark'
puts Benchmark.measure { "a"*1_000_000 }
gì nếu bạn muốn chuẩn phẫu thuật và có được cả hai giá trị trả về và thời gian trôi qua?
Hoặc, đã nêu một cách khác, việc đóng cửa có thể sửa đổi một đối tượng được truyền vào nó không?
Vì vậy, các bao đóng có một con trỏ có thể ghi vào những gì được truyền cho chúng? Và đóng cửa cũng có thể sửa đổi @a và @@ a, giả sử rằng những điều đó được định nghĩa bên ngoài việc đóng cửa. – justingordon
@justingordon: Có, họ có thể. – Miikka
Yuck. Tôi thực sự muốn Benchmark sẽ trả về một cái gì đó như: '[thời gian, kết quả]'. Sau đó, bạn có thể: 'time, a = Benchmark.measure {...}' – devth