Skip to content

Commit

Permalink
Move ReactVersion to a new --react-init-* mark
Browse files Browse the repository at this point in the history
  • Loading branch information
taneliang committed Aug 10, 2020
1 parent cb8d562 commit f0c6d10
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 19 deletions.
11 changes: 8 additions & 3 deletions packages/react-reconciler/src/SchedulingProfiler.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ function formatLanes(laneOrLanes: Lane | Lanes): string {
return ((laneOrLanes: any): number).toString();
}

// Create a mark on React initialization
if (enableSchedulingProfiler) {
if (supportsUserTiming) {
performance.mark(`--react-init-${ReactVersion}`);
}
}

export function markCommitStarted(lanes: Lanes): void {
if (enableSchedulingProfiler) {
if (supportsUserTiming) {
Expand Down Expand Up @@ -167,9 +174,7 @@ export function markRenderStopped(): void {
export function markRenderScheduled(lane: Lane): void {
if (enableSchedulingProfiler) {
if (supportsUserTiming) {
performance.mark(
`--schedule-render-${formatLanes(lane)}-${ReactVersion}`,
);
performance.mark(`--schedule-render-${formatLanes(lane)}`);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ describe('SchedulingProfiler', () => {
beforeEach(() => {
jest.resetModules();
global.performance = createUserTimingPolyfill();
marks = [];

React = require('react');

Expand All @@ -64,8 +65,6 @@ describe('SchedulingProfiler', () => {
ReactNoop = require('react-noop-renderer');

Scheduler = require('scheduler');

marks = [];
});

afterEach(() => {
Expand All @@ -78,12 +77,18 @@ describe('SchedulingProfiler', () => {
expect(marks).toEqual([]);
});

// @gate enableSchedulingProfiler
it('should log React version on initialization', () => {
expect(marks).toEqual([`--react-init-${ReactVersion}`]);
});

// @gate enableSchedulingProfiler
it('should mark sync render without suspends or state updates', () => {
ReactTestRenderer.create(<div />);

expect(marks).toEqual([
`--schedule-render-1-${ReactVersion}`,
`--react-init-${ReactVersion}`,
'--schedule-render-1',
'--render-start-1',
'--render-stop',
'--commit-start-1',
Expand All @@ -97,7 +102,10 @@ describe('SchedulingProfiler', () => {
it('should mark concurrent render without suspends or state updates', () => {
ReactTestRenderer.create(<div />, {unstable_isConcurrent: true});

expect(marks).toEqual([`--schedule-render-512-${ReactVersion}`]);
expect(marks).toEqual([
`--react-init-${ReactVersion}`,
'--schedule-render-512',
]);

marks.splice(0);

Expand Down Expand Up @@ -130,7 +138,8 @@ describe('SchedulingProfiler', () => {
expect(ReactNoop.flushNextYield()).toEqual(['Foo']);

expect(marks).toEqual([
`--schedule-render-512-${ReactVersion}`,
`--react-init-${ReactVersion}`,
'--schedule-render-512',
'--render-start-512',
'--render-yield',
]);
Expand All @@ -150,7 +159,8 @@ describe('SchedulingProfiler', () => {
);

expect(marks).toEqual([
`--schedule-render-1-${ReactVersion}`,
`--react-init-${ReactVersion}`,
'--schedule-render-1',
'--render-start-1',
toggleComponentStacks(
'--suspense-suspend-0-Example-\n at Example\n at Suspense',
Expand Down Expand Up @@ -186,7 +196,8 @@ describe('SchedulingProfiler', () => {
);

expect(marks).toEqual([
`--schedule-render-1-${ReactVersion}`,
`--react-init-${ReactVersion}`,
'--schedule-render-1',
'--render-start-1',
toggleComponentStacks(
'--suspense-suspend-0-Example-\n at Example\n at Suspense',
Expand Down Expand Up @@ -222,7 +233,10 @@ describe('SchedulingProfiler', () => {
{unstable_isConcurrent: true},
);

expect(marks).toEqual([`--schedule-render-512-${ReactVersion}`]);
expect(marks).toEqual([
`--react-init-${ReactVersion}`,
'--schedule-render-512',
]);

marks.splice(0);

Expand Down Expand Up @@ -264,7 +278,10 @@ describe('SchedulingProfiler', () => {
{unstable_isConcurrent: true},
);

expect(marks).toEqual([`--schedule-render-512-${ReactVersion}`]);
expect(marks).toEqual([
`--react-init-${ReactVersion}`,
'--schedule-render-512',
]);

marks.splice(0);

Expand Down Expand Up @@ -306,7 +323,10 @@ describe('SchedulingProfiler', () => {

ReactTestRenderer.create(<Example />, {unstable_isConcurrent: true});

expect(marks).toEqual([`--schedule-render-512-${ReactVersion}`]);
expect(marks).toEqual([
`--react-init-${ReactVersion}`,
'--schedule-render-512',
]);

marks.splice(0);

Expand Down Expand Up @@ -342,7 +362,10 @@ describe('SchedulingProfiler', () => {

ReactTestRenderer.create(<Example />, {unstable_isConcurrent: true});

expect(marks).toEqual([`--schedule-render-512-${ReactVersion}`]);
expect(marks).toEqual([
`--react-init-${ReactVersion}`,
'--schedule-render-512',
]);

marks.splice(0);

Expand Down Expand Up @@ -379,7 +402,10 @@ describe('SchedulingProfiler', () => {

ReactTestRenderer.create(<Example />, {unstable_isConcurrent: true});

expect(marks).toEqual([`--schedule-render-512-${ReactVersion}`]);
expect(marks).toEqual([
`--react-init-${ReactVersion}`,
'--schedule-render-512',
]);

marks.splice(0);

Expand Down Expand Up @@ -416,7 +442,10 @@ describe('SchedulingProfiler', () => {

ReactTestRenderer.create(<Example />, {unstable_isConcurrent: true});

expect(marks).toEqual([`--schedule-render-512-${ReactVersion}`]);
expect(marks).toEqual([
`--react-init-${ReactVersion}`,
'--schedule-render-512',
]);

marks.splice(0);

Expand Down Expand Up @@ -451,7 +480,10 @@ describe('SchedulingProfiler', () => {

ReactTestRenderer.create(<Example />, {unstable_isConcurrent: true});

expect(marks).toEqual([`--schedule-render-512-${ReactVersion}`]);
expect(marks).toEqual([
`--react-init-${ReactVersion}`,
'--schedule-render-512',
]);

marks.splice(0);

Expand Down Expand Up @@ -491,7 +523,8 @@ describe('SchedulingProfiler', () => {
gate(({old}) => {
if (old) {
expect(marks.map(normalizeCodeLocInfo)).toEqual([
`--schedule-render-512-${ReactVersion}`,
`--react-init-${ReactVersion}`,
'--schedule-render-512',
'--render-start-512',
'--render-stop',
'--commit-start-512',
Expand All @@ -510,7 +543,8 @@ describe('SchedulingProfiler', () => {
]);
} else {
expect(marks.map(normalizeCodeLocInfo)).toEqual([
`--schedule-render-512-${ReactVersion}`,
`--react-init-${ReactVersion}`,
'--schedule-render-512',
'--render-start-512',
'--render-stop',
'--commit-start-512',
Expand Down

0 comments on commit f0c6d10

Please sign in to comment.