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

时间:2015-12-14 10:13:35

标签: ruby testing random

我经常需要随机字节来测试字节缓冲区上的各种方法。目前我正在使用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)

1 个答案:

答案 0 :(得分:4)

Randombytes方法中,您必须传递将为您执行操作的字节大小

Random.new.bytes(10) # => "\xD7:R\xAB?\x83\xCE\xFAkO"

以获取更多参考资料http://ruby-doc.org/core-2.2.0/Random.html