repositories
/
benchmarks-js.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Busy wait with a sleep inside.
[benchmarks-js.git]
/
busy-wait.js
diff --git
a/busy-wait.js
b/busy-wait.js
index 9ff5a000f72463fcb600c45644e8f95deb4e05dd..d49a5fde51981ba870ab4de30397d5e61066592c 100644
(file)
--- a/
busy-wait.js
+++ b/
busy-wait.js
@@
-4,46
+4,52
@@
const { LIST_FORMATTER, sleep } = require('./benchmark-utils')
const suite = new Benchmark.Suite()
const timeout = 2000
const suite = new Benchmark.Suite()
const timeout = 2000
+const interval = 1000
/**
* @param timeoutMs
*/
/**
* @param timeoutMs
*/
-
function dummy
TimeoutBusyWait (timeoutMs) {
+
async function sleep
TimeoutBusyWait (timeoutMs) {
const timeoutTimestampMs = Date.now() + timeoutMs
const timeoutTimestampMs = Date.now() + timeoutMs
- do {} while (Date.now() < timeoutTimestampMs)
+ do {
+ await sleep(interval)
+ } while (Date.now() < timeoutTimestampMs)
}
/**
* @param timeoutMs
}
/**
* @param timeoutMs
- * @param
delay
Ms
+ * @param
interval
Ms
*/
*/
-async function divideAndConquerTimeoutBusyWait (timeoutMs, delayMs = 200) {
- const tries = Math.round(timeoutMs / delayMs)
+async function divideAndConquerTimeoutBusyWait (
+ timeoutMs,
+ intervalMs = interval
+) {
+ const tries = Math.round(timeoutMs / intervalMs)
let count = 0
do {
count++
let count = 0
do {
count++
- await sleep(
delay
Ms)
+ await sleep(
interval
Ms)
} while (count <= tries)
}
/**
* @param timeoutMs
} while (count <= tries)
}
/**
* @param timeoutMs
- * @param
delay
Ms
+ * @param
interval
Ms
*/
*/
-function setIntervalTimeoutBusyWait (timeoutMs,
delayMs = 200
) {
- const tries = Math.round(timeoutMs /
delay
Ms)
+function setIntervalTimeoutBusyWait (timeoutMs,
intervalMs = interval
) {
+ const tries = Math.round(timeoutMs /
interval
Ms)
let count = 0
const triesSetInterval = setInterval(() => {
count++
if (count === tries) {
clearInterval(triesSetInterval)
}
let count = 0
const triesSetInterval = setInterval(() => {
count++
if (count === tries) {
clearInterval(triesSetInterval)
}
- },
delay
Ms)
+ },
interval
Ms)
}
suite
}
suite
- .add('
dummyTimeoutBusyWait',
function () {
-
dummy
TimeoutBusyWait(timeout)
+ .add('
sleepTimeoutBusyWait', async
function () {
+
sleep
TimeoutBusyWait(timeout)
})
.add('divideAndConquerTimeoutBusyWait', async function () {
await divideAndConquerTimeoutBusyWait(timeout)
})
.add('divideAndConquerTimeoutBusyWait', async function () {
await divideAndConquerTimeoutBusyWait(timeout)