repositories
/
benchmarks-js.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Apply security update
[benchmarks-js.git]
/
busy-wait.js
diff --git
a/busy-wait.js
b/busy-wait.js
index 5ea20aad653f21df72c89d403b11a57506db2a0b..f2d10f3cd24f3d99d3a30d0c6fca6463991faf5f 100644
(file)
--- a/
busy-wait.js
+++ b/
busy-wait.js
@@
-4,20
+4,35
@@
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
*/
function dummyTimeoutBusyWait (timeoutMs) {
const timeoutTimestampMs = Date.now() + timeoutMs
/**
* @param timeoutMs
*/
function dummyTimeoutBusyWait (timeoutMs) {
const timeoutTimestampMs = Date.now() + timeoutMs
+ // eslint-disable-next-line no-empty
do {} while (Date.now() < timeoutTimestampMs)
}
do {} while (Date.now() < timeoutTimestampMs)
}
+/**
+ * @param timeoutMs
+ */
+async function sleepTimeoutBusyWait (timeoutMs) {
+ const timeoutTimestampMs = Date.now() + timeoutMs
+ do {
+ await sleep(interval)
+ } while (Date.now() < timeoutTimestampMs)
+}
+
/**
* @param timeoutMs
* @param intervalMs
*/
/**
* @param timeoutMs
* @param intervalMs
*/
-async function divideAndConquerTimeoutBusyWait (timeoutMs, intervalMs = 200) {
+async function divideAndConquerTimeoutBusyWait (
+ timeoutMs,
+ intervalMs = interval
+) {
const tries = Math.round(timeoutMs / intervalMs)
let count = 0
do {
const tries = Math.round(timeoutMs / intervalMs)
let count = 0
do {
@@
-30,7
+45,7
@@
async function divideAndConquerTimeoutBusyWait (timeoutMs, intervalMs = 200) {
* @param timeoutMs
* @param intervalMs
*/
* @param timeoutMs
* @param intervalMs
*/
-function setIntervalTimeoutBusyWait (timeoutMs, intervalMs =
200
) {
+function setIntervalTimeoutBusyWait (timeoutMs, intervalMs =
interval
) {
const tries = Math.round(timeoutMs / intervalMs)
let count = 0
const triesSetInterval = setInterval(() => {
const tries = Math.round(timeoutMs / intervalMs)
let count = 0
const triesSetInterval = setInterval(() => {
@@
-45,6
+60,9
@@
suite
.add('dummyTimeoutBusyWait', function () {
dummyTimeoutBusyWait(timeout)
})
.add('dummyTimeoutBusyWait', function () {
dummyTimeoutBusyWait(timeout)
})
+ .add('sleepTimeoutBusyWait', async function () {
+ sleepTimeoutBusyWait(timeout)
+ })
.add('divideAndConquerTimeoutBusyWait', async function () {
await divideAndConquerTimeoutBusyWait(timeout)
})
.add('divideAndConquerTimeoutBusyWait', async function () {
await divideAndConquerTimeoutBusyWait(timeout)
})
@@
-58,7
+76,7
@@
suite
console.log(
'Fastest is ' + LIST_FORMATTER.format(this.filter('fastest').map('name'))
)
console.log(
'Fastest is ' + LIST_FORMATTER.format(this.filter('fastest').map('name'))
)
- // eslint-disable-next-line no-process-exit
+ // eslint-disable-next-line n
/n
o-process-exit
process.exit()
})
.run()
process.exit()
})
.run()