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