Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

getRandomValues 生成随机数

  感谢 @IntPtr @0/0 同学对本文错误部分的纠正
  通常JavaScript生成随机数都会用Math.random来完成。除此之外,浏览器还提供了另一种获取随机数的方法:crypto.getRandomValues。这个方法可以批量生成随机数,适用于随机性需求高的地方。
  之前的测试由于没考虑数组的性能,得到了错误的结果。实际上 Math.random 的性能比 crypto.getRandomValues<input type="button" value="crypto" id="test1" />
<input type="button" value="Math" id="test2" />
<script>
onload=function(){
  var crypto=window.crypto||window.msCrypto;
  test1.onclick=function(){
    console.time("test1");
    for(var i=0;i<1E3;i++){
      var buffer=new Uint32Array(1E4);
      crypto.getRandomValues(buffer);
    };
    console.timeEnd("test1");
  };
  test2.onclick=function(){
    console.time("test2");
    for(var i=0;i<1E7;i++)Math.random();
    console.timeEnd("test2");
  };
};
</script>

网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^