本文簡要介紹ruby語言中 Benchmark.benchmark
的用法。
用法
benchmark(caption = "", label_width = nil, format = nil, *labels) { |report| ... }
使用 Benchmark::Report 對象調用塊,該對象可用於收集和報告單個基準測試的結果。為每行上的標簽保留label_width
前導空格。在報告頂部打印caption
,並使用format
格式化每一行。 (注意:caption
必須包含終止換行符,請參閱默認的 Benchmark::Tms::CAPTION 示例。)
返回 Benchmark::Tms
對象的數組。
如果塊返回 Benchmark::Tms
對象的數組,這些將用於格式化額外的輸出行。如果給定labels
參數,這些參數用於標記這些額外的行。
Note
:其他方法為此提供了一個更簡單的接口,並且適用於幾乎所有的基準測試要求。請參閱 Benchmark
中的示例,以及 bm
和 bmbm
方法。
例子:
require 'benchmark'
include Benchmark # we need the CAPTION and FORMAT constants
n = 5000000
Benchmark.benchmark(CAPTION, 7, FORMAT, ">total:", ">avg:") do |x|
tf = x.report("for:") { for i in 1..n; a = "1"; end }
tt = x.report("times:") { n.times do ; a = "1"; end }
tu = x.report("upto:") { 1.upto(n) do ; a = "1"; end }
[tf+tt+tu, (tf+tt+tu)/3]
end
生成:
user system total real for: 0.970000 0.000000 0.970000 ( 0.970493) times: 0.990000 0.000000 0.990000 ( 0.989542) upto: 0.970000 0.000000 0.970000 ( 0.972854) >total: 2.930000 0.000000 2.930000 ( 2.932889) >avg: 0.976667 0.000000 0.976667 ( 0.977630)
相關用法
- Ruby Benchmark.bmbm用法及代碼示例
- Ruby Benchmark.bm用法及代碼示例
- Ruby Benchmark.measure用法及代碼示例
- Ruby Benchmark模塊用法及代碼示例
- Ruby BigMath.cos用法及代碼示例
- Ruby Binding.local_variable_defined?用法及代碼示例
- Ruby BigDecimal.self >用法及代碼示例
- Ruby BigMath.sin用法及代碼示例
- Ruby BasicSocket.send用法及代碼示例
- Ruby BigDecimal.self >=用法及代碼示例
- Ruby Base64.encode64用法及代碼示例
- Ruby Bundler.setup用法及代碼示例
- Ruby BigDecimal.floor用法及代碼示例
- Ruby BigDecimal.to_s用法及代碼示例
- Ruby BigDecimal.to_d用法及代碼示例
- Ruby BigDecimal.save_rounding_mode用法及代碼示例
- Ruby BigDecimal modulo用法及代碼示例
- Ruby BigDecimal infinite?用法及代碼示例
- Ruby BigDecimal.to_digits用法及代碼示例
- Ruby BigDecimal.add用法及代碼示例
- Ruby BasicObject.equal?用法及代碼示例
- Ruby Buffer.slice用法及代碼示例
- Ruby BigDecimal.save_exception_mode用法及代碼示例
- Ruby BasicSocket.remote_address用法及代碼示例
- Ruby BigDecimal to_f()用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Benchmark.benchmark。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。