diff options
author | Ali Ijaz Sheikh <ofrobots@google.com> | 2018-01-16 17:13:36 -0800 |
---|---|---|
committer | Ali Ijaz Sheikh <ofrobots@google.com> | 2018-01-24 09:58:28 -0800 |
commit | 98d9540dd7a7aa2e612f16caeea6e57d56ed9f12 (patch) | |
tree | c6549e3b67faca9d1d87938f511e5054d73ff27b | |
parent | 51054dac541cdefabe54a076f009ebf4c3c5d144 (diff) | |
download | android-node-v8-98d9540dd7a7aa2e612f16caeea6e57d56ed9f12.tar.gz android-node-v8-98d9540dd7a7aa2e612f16caeea6e57d56ed9f12.tar.bz2 android-node-v8-98d9540dd7a7aa2e612f16caeea6e57d56ed9f12.zip |
src: use uv_hrtime as tracing timestamp
Override the V8 TracingController to provide uv_hrtime based
timestamps. This allows tracing timestamps to be comparable with
process.hrtime timestamps.
Fixes: https://github.com/nodejs/node/issues/17349
PR-URL: https://github.com/nodejs/node/pull/18196
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Andreas Madsen <amwebdk@gmail.com>
-rw-r--r-- | doc/api/tracing.md | 4 | ||||
-rw-r--r-- | src/tracing/agent.h | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/doc/api/tracing.md b/doc/api/tracing.md index e03477b1ad..fbfa2941ef 100644 --- a/doc/api/tracing.md +++ b/doc/api/tracing.md @@ -19,3 +19,7 @@ node --trace-events-enabled --trace-event-categories v8,node,node.async_hooks se Running Node.js with tracing enabled will produce log files that can be opened in the [`chrome://tracing`](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool) tab of Chrome. + +Starting with Node 10.0.0, the tracing system uses the same time source as the +one used by `process.hrtime()` however the trace-event timestamps are expressed +in microseconds, unlike `process.hrtime()` which returns nanoseconds. diff --git a/src/tracing/agent.h b/src/tracing/agent.h index bd8e90004b..203f53be7e 100644 --- a/src/tracing/agent.h +++ b/src/tracing/agent.h @@ -8,7 +8,14 @@ namespace node { namespace tracing { -using v8::platform::tracing::TracingController; +class TracingController : public v8::platform::tracing::TracingController { + public: + TracingController() : v8::platform::tracing::TracingController() {} + + int64_t CurrentTimestampMicroseconds() override { + return uv_hrtime() / 1000; + } +}; class Agent { public: |