📄 speed_test.rb
字号:
require 'digest/crc32_in_ruby'
require 'digest/crc32_in_c'
require 'digest/md5'
require 'digest/sha1'
require 'benchmark'
include Benchmark
def random_string(size)
s = ""
size.times {s << rand(256).chr}
s
end
def rand_string(maxSize = 100)
random_string(1+ rand(maxSize))
end
def rand_strings(num, maxSize = 100)
Array.new(num).map {rand_string(maxSize)}
end
def compare(classes, repetitions, string)
bmbm do |x|
classes.each do |klass|
x.report(klass.inspect) do
digester = klass.new
repetitions.times { digester << string }
hd = digester.hexdigest
end
end
end
end
string = random_string(1_000_000)
compare([Digest::CRC32InC, Digest::MD5, Digest::SHA1], 250, string)
puts ""
compare([Digest::CRC32InRuby], 1, string)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -