diff options
| author | Shipwreckt <me@shipwreckt.co.uk> | 2025-10-31 20:02:14 +0000 |
|---|---|---|
| committer | Shipwreckt <me@shipwreckt.co.uk> | 2025-10-31 20:02:14 +0000 |
| commit | 7a52ddeba2a68388b544f529d2d92104420f77b0 (patch) | |
| tree | 15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/@11ty/eleventy/src/Benchmark/Benchmark.js | |
| parent | 53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff) | |
Changed from static to 11ty!
Diffstat (limited to 'node_modules/@11ty/eleventy/src/Benchmark/Benchmark.js')
| -rw-r--r-- | node_modules/@11ty/eleventy/src/Benchmark/Benchmark.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/node_modules/@11ty/eleventy/src/Benchmark/Benchmark.js b/node_modules/@11ty/eleventy/src/Benchmark/Benchmark.js new file mode 100644 index 0000000..df6dea7 --- /dev/null +++ b/node_modules/@11ty/eleventy/src/Benchmark/Benchmark.js @@ -0,0 +1,55 @@ +import { performance } from "node:perf_hooks"; + +class Benchmark { + constructor() { + // TypeScript slop + this.timeSpent = 0; + this.timesCalled = 0; + this.beforeTimers = []; + } + + reset() { + this.timeSpent = 0; + this.timesCalled = 0; + this.beforeTimers = []; + } + + getNewTimestamp() { + if (performance) { + return performance.now(); + } + return new Date().getTime(); + } + + incrementCount() { + this.timesCalled++; + } + + // TODO(slightlyoff): + // disable all of these hrtime requests when not benchmarking + before() { + this.timesCalled++; + this.beforeTimers.push(this.getNewTimestamp()); + } + + after() { + if (!this.beforeTimers.length) { + throw new Error("You called Benchmark after() without a before()."); + } + + let before = this.beforeTimers.pop(); + if (!this.beforeTimers.length) { + this.timeSpent += this.getNewTimestamp() - before; + } + } + + getTimesCalled() { + return this.timesCalled; + } + + getTotal() { + return this.timeSpent; + } +} + +export default Benchmark; |
