instant-rs
v1.0.1 readable elapsed time costs console.time console.timeEnd instant rust
instant-rs
A better
console.time
.💰 Time is money, a very tiny library to convert time costs of your program to a human readable format use pretty-ms and designed in a good-DX API style like Rust's 🦀
instant.elapsed
.
Usage
import Instant from 'instant-rs'
// Mark beginning time
const now = Instant.now();
await doSthExpensive()
// Show time costs
console.log("time costs", now.elapsed());
elapsed()
will return the time costs of doSthExpensive()
in a readable string format.
1337000000 => 'time costs 15d 11h 23m 20s'
1337 => 'time costs 1.3s'
133 => 'time costs 133ms'
The console.time
Problem
In JavaScript:
console.time('time costs')
await sleep(10) // 10ms 100ms 1000ms
console.timeEnd('time costs')
// Output:
// time costs: 11.322021484375 ms 😀
// time costs: 1001.489990234375 ms 🤔
// time costs: 100102.08911132812 ms 😡
While in Rust, time costs is more readable and the API is easier to use and the code is more DRY because we don't need to write label twice:
use std::time::{Duration, Instant};
use std::thread::sleep;
fn main() {
let now = Instant::now();
sleep(Duration::from_millis(10)); // 10ms 100ms 1000ms
println!("time costs {:?}", now.elapsed());
}
// Output:
// time costs 10.07827ms // 10 ms 😀
// time costs 100.077897ms // 100 ms 😊
// time costs 1.000184719s // 1000 ms 😋
// time costs 10.000086342s // 10_000 ms 😇
That's why I wrote this package.
API
elapsed
function elapsed(options?: IOptions)
Support all options of pretty-ms https://www.npmjs.com/package/pretty-ms#api.
for example time cost is 1234ms
:
// `compact` option
now.elapsed({ compact: true });
//=> '1s'
// `verbose` option
now.elapsed({ compact: true });
//=> '1.2 seconds'
now
function now(): Instant