Il benchmark prende un blocco e restituisce il tempo: http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.htmlBenchmarking un'operazione di rubino che restituisce un valore
require 'benchmark'
puts Benchmark.measure { "a"*1_000_000 }
Che cosa succede se si desidera benchmark un'operazione e ottiene sia il valore di ritorno e il tempo trascorso?
Oppure, detto in altro modo, una chiusura può modificare un oggetto passato in esso?
Quindi le chiusure hanno un puntatore scrivibile su ciò che viene loro passato? E le chiusure possono modificare anche @a e @@ a, assumendo che queste siano definite al di fuori della chiusura. – justingordon
@justingordon: Sì, possono. – Miikka
Yuck. Vorrei davvero che Benchmark restituisse qualcosa come: "[tempo, risultato]". Quindi potresti: 'time, a = Benchmark.measure {...}' – devth