JSPM

  • Created
  • Published
  • Downloads 6
  • Score
    100M100P100Q47176F
  • License MIT

Package Exports

  • @javelin/hrtime-loop

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@javelin/hrtime-loop) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@javelin/hrtime-loop

A tiny, high-resolution game loop for NodeJS 10+. Utilizes the setImmediate and setTimeout schedulers in conjunction to maintain a balance of precision and performance.

Installation

npm i @javelin/hrtime-loop

Usage

import { createHrtimeLoop } from "@javelin/hrtime-loop"

const loop = createHrtimeLoop(clock => {
  // (bigint) monotonic time
  clock.now
  // (number) total number of ticks
  clock.tick
  // (number) time since last tick in ms
  clock.dt
}, (1 / 60) * 1000 /* tick interval (ms) */)

// Start the loop
loop.start()
// Stop the loop
loop.stop()
// Check if loop is running
loop.isRunning()

Performance

yarn perf will run performance tests. Example perf output:

tick_interval | 16.666666666666668
ticks         | 1000
avg_tick      | 16.678785390999984
accuracy      | 99.927%
precision     | 100.000%