ArcticChrono | Version 1.0.4
A simplistic approach to benchmarking javascript operations in NodeJS. The ArcticChrono module uses process.hrtime()
method to get an accurate and high precision time of a given set of operations. If you're looking to time how fast your application is, or how long it takes to perform a certain operation(s), then you can use this module to do it.
Installation
npm install arcticchrono --save
will install ArcticChrono to your project.
Add it to your project by requiring it.
Javascript Implementation
const chrono = require('arcticchrono').ArcticChrono;
let stopwatch = chrono.start(3);
setTimeout(() => {
let elapsed = stopwatch.stop();
console.log(elapsed); // 3002.208 (Output may vary.)
}, 3000);
Typescript Implementation
import { ArcticChrono } from 'arcticchrono';
let stopwatch = ArcticChrono.start(3);
setTimeout(() => {
let elapsed = stopwatch.stop();
console.log(elapsed); // 3002.208 (Output may vary.)
}, 3000);
API
The ArcticChrono API is clean and simple, containing two main methods to get you started.
static ArcticChrono.start(precision?: number) : ArcticChrono | Creates an instance of ArcticChrono and stores the starting point of the chronograph. Optionally a precision can be given to determine how many decimal places the chronograph will read when the stop method has been executed. |
public ArcticChrono.stop() : number | Stops the stopwatch and returns back the time in milliseconds of how long it took between the start of the stopwatch, and the of the stopwatch. |
public ArcticChrono.setPrecision(precision: number) : void | Sets the precision to determine how many decimal places the chronograph will read when the stop method has been executed. |
public ArcticChrono.getTime() : number | Returns the time given when the method stop() was executed. If stop was not executed, getTime() is guaranteed to return -1. |
To Dos
Although simplistic, there are still a few features that I'd like to add to ArcticChronograph.
[ ] Create a conversion from milliseconds to seconds to minutes. [ ] Create a system that keeps tracks of laps. [ ] Rewrite the documentation to reflect the TypeScript intellisense.
Footnote Malarkey
If you like this module, then feel free to drop me a tweet and tell me I did a good job. If you have any questions related to this repo/module then make sure to make a discussion on the github repo for me to look at.
Why did you put arctic in the title of the module?
Because Chronograph is taken and I figured appending "arctic" to it would make it sound cool.