Javascript 一个昂贵计算的例子

Javascript 一个昂贵计算的例子,javascript,performance,Javascript,Performance,我正在学习如何衡量性能,并希望使用一些大约需要1-2秒计算的代码 我使用了下面的代码,但是我想知道是否有人能帮我完成一个更简洁的操作。它不必“有意义” const迭代次数=50; 常数乘数=100000000; 函数计算时间(迭代次数、乘数){ var素数=[]; 对于(var i=0;i

我正在学习如何衡量性能,并希望使用一些大约需要1-2秒计算的代码

我使用了下面的代码,但是我想知道是否有人能帮我完成一个更简洁的操作。它不必“有意义”

const迭代次数=50;
常数乘数=100000000;
函数计算时间(迭代次数、乘数){
var素数=[];
对于(var i=0;i对于(var c=2;c在“需要时间”的情况下进行操作的最简单方法是只做一段时间:

功能等待(秒){
var start=新日期();
//清空while循环,直到经过所需的时间
而((新日期()-开始)/1000<秒);
}
var begin=performance.now();
控制台日志(“启动”);
等待(2);

console.log(“finish in”,performance.now()-begin,“ms”);
如果操作的目的是“它需要时间”,那么最简单的方法就是只做一段时间:

功能等待(秒){
var start=新日期();
//清空while循环,直到经过所需的时间
而((新日期()-开始)/1000<秒);
}
var begin=performance.now();
控制台日志(“启动”);
等待(2);

console.log(“finish in”,performance.now()-begin,“ms”);
对非常大的数组进行排序。您不必编写自己的排序,因为JS有一个排序函数。对非常大的数组进行排序。您不必编写自己的排序,因为JS有一个排序函数。
const iterations = 50;
const multiplier = 1000000000;

function calculatePrimes(iterations, multiplier) {
  var primes = [];
  for (var i = 0; i < iterations; i++) {
    var candidate = i * (multiplier * Math.random());
    var isPrime = true;
    for (var c = 2; c <= Math.sqrt(candidate); ++c) {
      if (candidate % c === 0) {
        // not prime
        isPrime = false;
        break;
      }
    }
    if (isPrime) {
      primes.push(candidate);
    }
  }
  return primes;
}

function doPointlessComputationsWithBlocking() {
  var primes = calculatePrimes(iterations, multiplier);
  pointlessComputationsButton.disabled = false;
  console.log(primes);
}