Ruby中的快速(不安全)随机字节生成器



我经常需要随机字节来测试字节缓冲区上的各种方法。目前我正在使用SecureRandom.random_bytes,但由于它要求安全,所以速度较慢。有没有一种替代方案可以使用C扩展来快速生成这种情况下的随机字节?

更新:

最简单的方法是使用Random.new而不是SecureRandom

require 'securerandom'
require 'benchmark'
Benchmark.bm(12) do |x|
  x.report("SecureRandom:") { 100.times { SecureRandom.random_bytes(1024*1024*5) } }  
  x.report("Random:") { 100.times { Random.new.bytes(1024*1024*5) } }  
end

交付:

                   user     system      total        real
SecureRandom: 15.510000   0.170000  15.680000 ( 15.952913)
Random:        0.920000   0.120000   1.040000 (  1.070739)

Randombytes方法中,您必须传递字节大小,这将为您的示例

Random.new.bytes(10) # => "xD7:RxAB?x83xCExFAkO"

点击此处获取更多参考http://ruby-doc.org/core-2.2.0/Random.html

最新更新