⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 speed_test.rb

📁 CRC校验采用多项式编码方法。多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算以2为模
💻 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 + -