Javascript's performance.now() and Nodejs [duplicate]
Asked Answered
T

1

11

I'm new to Nodejs and I'm confused about something when timing:

If Nodejs is Javascript, then why Javascript's performance.now() doesn't work on Nodejs and I'm forced to use console.time() or the like?

How can I know what other Javascript functions doesn't work on Node?

Thanks!

Teacake answered 18/6, 2016 at 16:4 Comment(2)
The performance API is a web browser thing; it's not part of JavaScript proper, just like the DOM is not part of JavaScript.Directional
In Node, you probably want process.hrtime(). Anyhow, some API's are host-specific. Best way to know for sure is test.Roaster
S
12

Update: Although this was correct at the time it was written, this answer is now obsolete and modern versions of Node do support performance.now()

First, we have to be very clear about what JavaScript does -- and does not include.

The definition for what JavaScript includes is the EMCA-262 guide. This is the only thing that JavaScript is required to have.

Everything else - from the DOM to the performance object are additions provided by the host environment.

Some -- many -- browsers have chosen to add performance.now() but that is NOT part of JavaScript -- just something that JavaScript can call.

nodeJS currently doesn't support it -- at least not out-of-the-box, but it looks like someone created a module that does give you that ability.

I've not tried it, just did a quick google for 'node performance.now` and this was the first hit: https://www.npmjs.com/package/performance-now

Slung answered 18/6, 2016 at 16:11 Comment(2)
Node v8.5.0 has added Performance Timing API, which includes the performance#now().Menorca
import { performance } from 'perf_hooks' Worked great in 11Invertebrate

© 2022 - 2024 — McMap. All rights reserved.