From f1bfb4439f1fedeafe4f58e6e85b947dbfffc5a2 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Thu, 18 Feb 2021 10:48:40 -0500 Subject: [PATCH 1/2] Disabled Scheduler sampling profiler for OSS builds --- packages/scheduler/src/SchedulerFeatureFlags.js | 2 +- packages/scheduler/src/__tests__/SchedulerProfiling-test.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/scheduler/src/SchedulerFeatureFlags.js b/packages/scheduler/src/SchedulerFeatureFlags.js index bd47c158313c..e18c34d5a029 100644 --- a/packages/scheduler/src/SchedulerFeatureFlags.js +++ b/packages/scheduler/src/SchedulerFeatureFlags.js @@ -8,7 +8,7 @@ export const enableSchedulerDebugging = false; export const enableIsInputPending = false; -export const enableProfiling = __PROFILE__; +export const enableProfiling = false; // TODO: enable to fix https://github.com/facebook/react/issues/20756. export const enableSetImmediate = __VARIANT__; diff --git a/packages/scheduler/src/__tests__/SchedulerProfiling-test.js b/packages/scheduler/src/__tests__/SchedulerProfiling-test.js index cf9f9c5ea8cd..b7828b14487f 100644 --- a/packages/scheduler/src/__tests__/SchedulerProfiling-test.js +++ b/packages/scheduler/src/__tests__/SchedulerProfiling-test.js @@ -44,7 +44,8 @@ function priorityLevelToString(priorityLevel) { } describe('Scheduler', () => { - if (!__PROFILE__) { + const {enableProfiling} = require('scheduler/src/SchedulerFeatureFlags'); + if (!enableProfiling) { // The tests in this suite only apply when profiling is on it('profiling APIs are not available', () => { Scheduler = require('scheduler'); From 2013933ab22882a86d69382700d2f8115d450e90 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Thu, 18 Feb 2021 10:50:56 -0500 Subject: [PATCH 2/2] Added missing conditional feature flag around profiling calls --- packages/scheduler/src/forks/SchedulerDOM.js | 8 ++++++-- packages/scheduler/src/forks/SchedulerMock.js | 8 ++++++-- packages/scheduler/src/forks/SchedulerNoDOM.js | 8 ++++++-- packages/scheduler/src/forks/SchedulerPostTaskOnly.js | 8 ++++++-- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/packages/scheduler/src/forks/SchedulerDOM.js b/packages/scheduler/src/forks/SchedulerDOM.js index 6c7dc446c9a6..eb70af64d7d6 100644 --- a/packages/scheduler/src/forks/SchedulerDOM.js +++ b/packages/scheduler/src/forks/SchedulerDOM.js @@ -219,12 +219,16 @@ function workLoop(hasTimeRemaining, initialTime) { currentTask.callback = null; currentPriorityLevel = currentTask.priorityLevel; const didUserCallbackTimeout = currentTask.expirationTime <= currentTime; - markTaskRun(currentTask, currentTime); + if (enableProfiling) { + markTaskRun(currentTask, currentTime); + } const continuationCallback = callback(didUserCallbackTimeout); currentTime = getCurrentTime(); if (typeof continuationCallback === 'function') { currentTask.callback = continuationCallback; - markTaskYield(currentTask, currentTime); + if (enableProfiling) { + markTaskYield(currentTask, currentTime); + } } else { if (enableProfiling) { markTaskCompleted(currentTask, currentTime); diff --git a/packages/scheduler/src/forks/SchedulerMock.js b/packages/scheduler/src/forks/SchedulerMock.js index 9ec5504b243f..5d7b8c945bb6 100644 --- a/packages/scheduler/src/forks/SchedulerMock.js +++ b/packages/scheduler/src/forks/SchedulerMock.js @@ -183,12 +183,16 @@ function workLoop(hasTimeRemaining, initialTime) { currentTask.callback = null; currentPriorityLevel = currentTask.priorityLevel; const didUserCallbackTimeout = currentTask.expirationTime <= currentTime; - markTaskRun(currentTask, currentTime); + if (enableProfiling) { + markTaskRun(currentTask, currentTime); + } const continuationCallback = callback(didUserCallbackTimeout); currentTime = getCurrentTime(); if (typeof continuationCallback === 'function') { currentTask.callback = continuationCallback; - markTaskYield(currentTask, currentTime); + if (enableProfiling) { + markTaskYield(currentTask, currentTime); + } } else { if (enableProfiling) { markTaskCompleted(currentTask, currentTime); diff --git a/packages/scheduler/src/forks/SchedulerNoDOM.js b/packages/scheduler/src/forks/SchedulerNoDOM.js index e1a4a5e946d3..35bf3bfbc940 100644 --- a/packages/scheduler/src/forks/SchedulerNoDOM.js +++ b/packages/scheduler/src/forks/SchedulerNoDOM.js @@ -185,12 +185,16 @@ function workLoop(hasTimeRemaining, initialTime) { currentTask.callback = null; currentPriorityLevel = currentTask.priorityLevel; const didUserCallbackTimeout = currentTask.expirationTime <= currentTime; - markTaskRun(currentTask, currentTime); + if (enableProfiling) { + markTaskRun(currentTask, currentTime); + } const continuationCallback = callback(didUserCallbackTimeout); currentTime = getCurrentTime(); if (typeof continuationCallback === 'function') { currentTask.callback = continuationCallback; - markTaskYield(currentTask, currentTime); + if (enableProfiling) { + markTaskYield(currentTask, currentTime); + } } else { if (enableProfiling) { markTaskCompleted(currentTask, currentTime); diff --git a/packages/scheduler/src/forks/SchedulerPostTaskOnly.js b/packages/scheduler/src/forks/SchedulerPostTaskOnly.js index 8ee96e2d16e5..9f5674e24b2d 100644 --- a/packages/scheduler/src/forks/SchedulerPostTaskOnly.js +++ b/packages/scheduler/src/forks/SchedulerPostTaskOnly.js @@ -210,12 +210,16 @@ function workLoop(hasTimeRemaining, initialTime) { currentTask.callback = null; currentPriorityLevel = currentTask.priorityLevel; const didUserCallbackTimeout = currentTask.expirationTime <= currentTime; - markTaskRun(currentTask, currentTime); + if (enableProfiling) { + markTaskRun(currentTask, currentTime); + } const continuationCallback = callback(didUserCallbackTimeout); currentTime = getCurrentTime(); if (typeof continuationCallback === 'function') { currentTask.callback = continuationCallback; - markTaskYield(currentTask, currentTime); + if (enableProfiling) { + markTaskYield(currentTask, currentTime); + } } else { if (enableProfiling) { markTaskCompleted(currentTask, currentTime);