-
-
Notifications
You must be signed in to change notification settings - Fork 32.2k
Closed
Labels
perf_hooksIssues and PRs related to the implementation of the Performance Timing API.Issues and PRs related to the implementation of the Performance Timing API.
Description
Version
v17.9.0
Platform
Darwin Amilas-MacBook-Pro.local 21.4.0 Darwin Kernel Version 21.4.0: Fri Mar 18 00:45:05 PDT 2022; root:xnu-8020.101.4~15/RELEASE_X86_64 x86_64
Subsystem
No response
What steps will reproduce the bug?
All performance entries' startTime
should be relative to performance.timeOrigin
.
repro:
import { PerformanceObserver } from "perf_hooks";
const formatTime = (ms) => new Date(ms).toLocaleString();
console.log(`time origin: ${formatTime(performance.timeOrigin)}`);
// observe mark and gc entries
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach(({ entryType, startTime }) => {
// gc performance entries aren't relative to timeOrigin
console.log(entryType, formatTime(startTime + performance.timeOrigin));
});
});
observer.observe({
entryTypes: ["mark", "gc"],
});
// Mark entries are relative to timeOrigin
performance.mark("foo");
// Create some objects
setInterval(() => {
const arr = new Array(1_000_000).fill(0);
for (let i = 0; i < arr.length; i++) {
arr[i] += 1;
}
}, 1_000);
output:
time origin: 5/11/2022, 11:07:35 AM # correct
mark 5/11/2022, 11:07:35 AM # correct
gc 5/20/2022, 10:23:36 AM # incorrect
gc 5/20/2022, 10:23:36 AM # incorrect
gc 5/20/2022, 10:23:37 AM # incorrect
gc 5/20/2022, 10:23:38 AM # incorrect
gc 5/20/2022, 10:23:39 AM # incorrect
I've created a repl.it reproducing the bug.
How often does it reproduce? Is there a required condition?
I can reproduce it 100% of the time.
What is the expected behavior?
All performance entries' startTime
should be relative to performance.timeOrigin
. This isn't the case for the gc
entry.
What do you see instead?
the startTime
of gc performance entries are off by hours (see example output)
Additional information
No response
Metadata
Metadata
Assignees
Labels
perf_hooksIssues and PRs related to the implementation of the Performance Timing API.Issues and PRs related to the implementation of the Performance Timing API.