El punto de referencia toma un bloque y devuelve el tiempo: http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.htmlEvaluación comparativa de una operación de rubí que devuelve un valor
require 'benchmark'
puts Benchmark.measure { "a"*1_000_000 }
¿Qué pasa si usted quiere una operación de referencia y obtener tanto el valor de retorno y el tiempo transcurrido?
O, dicho de otra manera, ¿puede un cierre modificar un objeto que se pasa dentro de él?
¿Entonces los cierres tienen un puntero grabable para lo que se les pasa? Y los cierres también pueden modificar @a y @@ a, suponiendo que se definan fuera del cierre. – justingordon
@justingordon: Sí, pueden. – Miikka
Yuck. Realmente deseo que Benchmark devuelva algo como: '[tiempo, resultado] '. Entonces podrías: 'tiempo, a = Benchmark.measure {...}' – devth