tauri/tooling/bench/tests/cpu_intensive/public/worker.js
2021-07-03 19:48:04 -03:00

46 lines
835 B
JavaScript

const isPrime = (number) => {
if (number % 2 === 0 && number > 2) {
return false
}
let start = 2
const limit = Math.sqrt(number)
while (start <= limit) {
if (number % start++ < 1) {
return false
}
}
return number > 1
}
addEventListener('message', (e) => {
const { startTime } = e.data
let n = 0
let total = 0
const THRESHOLD = e.data.value
const primes = []
let previous = startTime
while (++n <= THRESHOLD) {
if (isPrime(n)) {
primes.push(n)
total++
const now = Date.now()
if (now - previous > 250) {
previous = now
postMessage({
status: 'calculating',
count: total,
time: Date.now() - startTime
})
}
}
}
postMessage({ status: 'done', count: total, time: Date.now() - startTime })
})