How to use warnInProduction method in Playwright Internal

Best JavaScript code snippet using playwright-internal

ReactPerf.js

Source:ReactPerf.js Github

copy

Full Screen

...21// https://github.com/facebook/flow/pull/2353 for updates22function consoleTable(table) {23 console.table(table);24}25function warnInProduction() {26 if (alreadyWarned) {27 return;28 }29 alreadyWarned = true;30 if (typeof console !== 'undefined') {31 console.error('ReactPerf is not supported in the production builds of React. ' + 'To collect measurements, please use the development build of React instead.');32 }33}34function getLastMeasurements() {35 if (!(process.env.NODE_ENV !== 'production')) {36 warnInProduction();37 return [];38 }39 return ReactDebugTool.getFlushHistory();40}41function getExclusive() {42 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();43 if (!(process.env.NODE_ENV !== 'production')) {44 warnInProduction();45 return [];46 }47 var aggregatedStats = {};48 var affectedIDs = {};49 function updateAggregatedStats(treeSnapshot, instanceID, timerType, applyUpdate) {50 var displayName = treeSnapshot[instanceID].displayName;51 var key = displayName;52 var stats = aggregatedStats[key];53 if (!stats) {54 affectedIDs[key] = {};55 stats = aggregatedStats[key] = {56 key: key,57 instanceCount: 0,58 counts: {},59 durations: {},60 totalDuration: 061 };62 }63 if (!stats.durations[timerType]) {64 stats.durations[timerType] = 0;65 }66 if (!stats.counts[timerType]) {67 stats.counts[timerType] = 0;68 }69 affectedIDs[key][instanceID] = true;70 applyUpdate(stats);71 }72 flushHistory.forEach(function (flush) {73 var measurements = flush.measurements,74 treeSnapshot = flush.treeSnapshot;75 measurements.forEach(function (measurement) {76 var duration = measurement.duration,77 instanceID = measurement.instanceID,78 timerType = measurement.timerType;79 updateAggregatedStats(treeSnapshot, instanceID, timerType, function (stats) {80 stats.totalDuration += duration;81 stats.durations[timerType] += duration;82 stats.counts[timerType]++;83 });84 });85 });86 return Object.keys(aggregatedStats).map(function (key) {87 return _extends({}, aggregatedStats[key], {88 instanceCount: Object.keys(affectedIDs[key]).length89 });90 }).sort(function (a, b) {91 return b.totalDuration - a.totalDuration;92 });93}94function getInclusive() {95 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();96 if (!(process.env.NODE_ENV !== 'production')) {97 warnInProduction();98 return [];99 }100 var aggregatedStats = {};101 var affectedIDs = {};102 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {103 var _treeSnapshot$instanc = treeSnapshot[instanceID],104 displayName = _treeSnapshot$instanc.displayName,105 ownerID = _treeSnapshot$instanc.ownerID;106 var owner = treeSnapshot[ownerID];107 var key = (owner ? owner.displayName + ' > ' : '') + displayName;108 var stats = aggregatedStats[key];109 if (!stats) {110 affectedIDs[key] = {};111 stats = aggregatedStats[key] = {112 key: key,113 instanceCount: 0,114 inclusiveRenderDuration: 0,115 renderCount: 0116 };117 }118 affectedIDs[key][instanceID] = true;119 applyUpdate(stats);120 }121 var isCompositeByID = {};122 flushHistory.forEach(function (flush) {123 var measurements = flush.measurements;124 measurements.forEach(function (measurement) {125 var instanceID = measurement.instanceID,126 timerType = measurement.timerType;127 if (timerType !== 'render') {128 return;129 }130 isCompositeByID[instanceID] = true;131 });132 });133 flushHistory.forEach(function (flush) {134 var measurements = flush.measurements,135 treeSnapshot = flush.treeSnapshot;136 measurements.forEach(function (measurement) {137 var duration = measurement.duration,138 instanceID = measurement.instanceID,139 timerType = measurement.timerType;140 if (timerType !== 'render') {141 return;142 }143 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {144 stats.renderCount++;145 });146 var nextParentID = instanceID;147 while (nextParentID) {148 // As we traverse parents, only count inclusive time towards composites.149 // We know something is a composite if its render() was called.150 if (isCompositeByID[nextParentID]) {151 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {152 stats.inclusiveRenderDuration += duration;153 });154 }155 nextParentID = treeSnapshot[nextParentID].parentID;156 }157 });158 });159 return Object.keys(aggregatedStats).map(function (key) {160 return _extends({}, aggregatedStats[key], {161 instanceCount: Object.keys(affectedIDs[key]).length162 });163 }).sort(function (a, b) {164 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;165 });166}167function getWasted() {168 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();169 if (!(process.env.NODE_ENV !== 'production')) {170 warnInProduction();171 return [];172 }173 var aggregatedStats = {};174 var affectedIDs = {};175 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {176 var _treeSnapshot$instanc2 = treeSnapshot[instanceID],177 displayName = _treeSnapshot$instanc2.displayName,178 ownerID = _treeSnapshot$instanc2.ownerID;179 var owner = treeSnapshot[ownerID];180 var key = (owner ? owner.displayName + ' > ' : '') + displayName;181 var stats = aggregatedStats[key];182 if (!stats) {183 affectedIDs[key] = {};184 stats = aggregatedStats[key] = {185 key: key,186 instanceCount: 0,187 inclusiveRenderDuration: 0,188 renderCount: 0189 };190 }191 affectedIDs[key][instanceID] = true;192 applyUpdate(stats);193 }194 flushHistory.forEach(function (flush) {195 var measurements = flush.measurements,196 treeSnapshot = flush.treeSnapshot,197 operations = flush.operations;198 var isDefinitelyNotWastedByID = {};199 // Find host components associated with an operation in this batch.200 // Mark all components in their parent tree as definitely not wasted.201 operations.forEach(function (operation) {202 var instanceID = operation.instanceID;203 var nextParentID = instanceID;204 while (nextParentID) {205 isDefinitelyNotWastedByID[nextParentID] = true;206 nextParentID = treeSnapshot[nextParentID].parentID;207 }208 });209 // Find composite components that rendered in this batch.210 // These are potential candidates for being wasted renders.211 var renderedCompositeIDs = {};212 measurements.forEach(function (measurement) {213 var instanceID = measurement.instanceID,214 timerType = measurement.timerType;215 if (timerType !== 'render') {216 return;217 }218 renderedCompositeIDs[instanceID] = true;219 });220 measurements.forEach(function (measurement) {221 var duration = measurement.duration,222 instanceID = measurement.instanceID,223 timerType = measurement.timerType;224 if (timerType !== 'render') {225 return;226 }227 // If there was a DOM update below this component, or it has just been228 // mounted, its render() is not considered wasted.229 var updateCount = treeSnapshot[instanceID].updateCount;230 if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) {231 return;232 }233 // We consider this render() wasted.234 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {235 stats.renderCount++;236 });237 var nextParentID = instanceID;238 while (nextParentID) {239 // Any parents rendered during this batch are considered wasted240 // unless we previously marked them as dirty.241 var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID];242 if (isWasted) {243 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {244 stats.inclusiveRenderDuration += duration;245 });246 }247 nextParentID = treeSnapshot[nextParentID].parentID;248 }249 });250 });251 return Object.keys(aggregatedStats).map(function (key) {252 return _extends({}, aggregatedStats[key], {253 instanceCount: Object.keys(affectedIDs[key]).length254 });255 }).sort(function (a, b) {256 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;257 });258}259function getOperations() {260 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();261 if (!(process.env.NODE_ENV !== 'production')) {262 warnInProduction();263 return [];264 }265 var stats = [];266 flushHistory.forEach(function (flush, flushIndex) {267 var operations = flush.operations,268 treeSnapshot = flush.treeSnapshot;269 operations.forEach(function (operation) {270 var instanceID = operation.instanceID,271 type = operation.type,272 payload = operation.payload;273 var _treeSnapshot$instanc3 = treeSnapshot[instanceID],274 displayName = _treeSnapshot$instanc3.displayName,275 ownerID = _treeSnapshot$instanc3.ownerID;276 var owner = treeSnapshot[ownerID];277 var key = (owner ? owner.displayName + ' > ' : '') + displayName;278 stats.push({279 flushIndex: flushIndex,280 instanceID: instanceID,281 key: key,282 type: type,283 ownerID: ownerID,284 payload: payload285 });286 });287 });288 return stats;289}290function printExclusive(flushHistory) {291 if (!(process.env.NODE_ENV !== 'production')) {292 warnInProduction();293 return;294 }295 var stats = getExclusive(flushHistory);296 var table = stats.map(function (item) {297 var key = item.key,298 instanceCount = item.instanceCount,299 totalDuration = item.totalDuration;300 var renderCount = item.counts.render || 0;301 var renderDuration = item.durations.render || 0;302 return {303 Component: key,304 'Total time (ms)': roundFloat(totalDuration),305 'Instance count': instanceCount,306 'Total render time (ms)': roundFloat(renderDuration),307 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined,308 'Render count': renderCount,309 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration)310 };311 });312 consoleTable(table);313}314function printInclusive(flushHistory) {315 if (!(process.env.NODE_ENV !== 'production')) {316 warnInProduction();317 return;318 }319 var stats = getInclusive(flushHistory);320 var table = stats.map(function (item) {321 var key = item.key,322 instanceCount = item.instanceCount,323 inclusiveRenderDuration = item.inclusiveRenderDuration,324 renderCount = item.renderCount;325 return {326 'Owner > Component': key,327 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration),328 'Instance count': instanceCount,329 'Render count': renderCount330 };331 });332 consoleTable(table);333}334function printWasted(flushHistory) {335 if (!(process.env.NODE_ENV !== 'production')) {336 warnInProduction();337 return;338 }339 var stats = getWasted(flushHistory);340 var table = stats.map(function (item) {341 var key = item.key,342 instanceCount = item.instanceCount,343 inclusiveRenderDuration = item.inclusiveRenderDuration,344 renderCount = item.renderCount;345 return {346 'Owner > Component': key,347 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration),348 'Instance count': instanceCount,349 'Render count': renderCount350 };351 });352 consoleTable(table);353}354function printOperations(flushHistory) {355 if (!(process.env.NODE_ENV !== 'production')) {356 warnInProduction();357 return;358 }359 var stats = getOperations(flushHistory);360 var table = stats.map(function (stat) {361 return {362 'Owner > Node': stat.key,363 Operation: stat.type,364 Payload: typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload,365 'Flush index': stat.flushIndex,366 'Owner Component ID': stat.ownerID,367 'DOM Component ID': stat.instanceID368 };369 });370 consoleTable(table);371}372var warnedAboutPrintDOM = false;373function printDOM(measurements) {374 lowPriorityWarning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.');375 warnedAboutPrintDOM = true;376 return printOperations(measurements);377}378var warnedAboutGetMeasurementsSummaryMap = false;379function getMeasurementsSummaryMap(measurements) {380 lowPriorityWarning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.');381 warnedAboutGetMeasurementsSummaryMap = true;382 return getWasted(measurements);383}384function start() {385 if (!(process.env.NODE_ENV !== 'production')) {386 warnInProduction();387 return;388 }389 ReactDebugTool.beginProfiling();390}391function stop() {392 if (!(process.env.NODE_ENV !== 'production')) {393 warnInProduction();394 return;395 }396 ReactDebugTool.endProfiling();397}398function isRunning() {399 if (!(process.env.NODE_ENV !== 'production')) {400 warnInProduction();401 return false;402 }403 return ReactDebugTool.isProfiling();404}405var ReactPerfAnalysis = {406 getLastMeasurements: getLastMeasurements,407 getExclusive: getExclusive,408 getInclusive: getInclusive,409 getWasted: getWasted,410 getOperations: getOperations,411 printExclusive: printExclusive,412 printInclusive: printInclusive,413 printWasted: printWasted,414 printOperations: printOperations,...

Full Screen

Full Screen

f4a167ReactPerf.js

Source:f4a167ReactPerf.js Github

copy

Full Screen

...9}10function consoleTable(table) {11 console.table(table);12}13function warnInProduction() {14 if (alreadyWarned) {15 return;16 }17 alreadyWarned = true;18 if (typeof console !== 'undefined') {19 console.error('ReactPerf is not supported in the production builds of React. ' + 'To collect measurements, please use the development build of React instead.');20 }21}22function getLastMeasurements() {23 if (!__DEV__) {24 warnInProduction();25 return [];26 }27 return ReactDebugTool.getFlushHistory();28}29function getExclusive() {30 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();31 if (!__DEV__) {32 warnInProduction();33 return [];34 }35 var aggregatedStats = {};36 var affectedIDs = {};37 function updateAggregatedStats(treeSnapshot, instanceID, timerType, applyUpdate) {38 var displayName = treeSnapshot[instanceID].displayName;39 var key = displayName;40 var stats = aggregatedStats[key];41 if (!stats) {42 affectedIDs[key] = {};43 stats = aggregatedStats[key] = {44 key: key,45 instanceCount: 0,46 counts: {},47 durations: {},48 totalDuration: 049 };50 }51 if (!stats.durations[timerType]) {52 stats.durations[timerType] = 0;53 }54 if (!stats.counts[timerType]) {55 stats.counts[timerType] = 0;56 }57 affectedIDs[key][instanceID] = true;58 applyUpdate(stats);59 }60 flushHistory.forEach(function (flush) {61 var measurements = flush.measurements,62 treeSnapshot = flush.treeSnapshot;63 measurements.forEach(function (measurement) {64 var duration = measurement.duration,65 instanceID = measurement.instanceID,66 timerType = measurement.timerType;67 updateAggregatedStats(treeSnapshot, instanceID, timerType, function (stats) {68 stats.totalDuration += duration;69 stats.durations[timerType] += duration;70 stats.counts[timerType]++;71 });72 });73 });74 return Object.keys(aggregatedStats).map(function (key) {75 return babelHelpers.extends({}, aggregatedStats[key], {76 instanceCount: Object.keys(affectedIDs[key]).length77 });78 }).sort(function (a, b) {79 return b.totalDuration - a.totalDuration;80 });81}82function getInclusive() {83 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();84 if (!__DEV__) {85 warnInProduction();86 return [];87 }88 var aggregatedStats = {};89 var affectedIDs = {};90 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {91 var _treeSnapshot$instanc = treeSnapshot[instanceID],92 displayName = _treeSnapshot$instanc.displayName,93 ownerID = _treeSnapshot$instanc.ownerID;94 var owner = treeSnapshot[ownerID];95 var key = (owner ? owner.displayName + ' > ' : '') + displayName;96 var stats = aggregatedStats[key];97 if (!stats) {98 affectedIDs[key] = {};99 stats = aggregatedStats[key] = {100 key: key,101 instanceCount: 0,102 inclusiveRenderDuration: 0,103 renderCount: 0104 };105 }106 affectedIDs[key][instanceID] = true;107 applyUpdate(stats);108 }109 var isCompositeByID = {};110 flushHistory.forEach(function (flush) {111 var measurements = flush.measurements;112 measurements.forEach(function (measurement) {113 var instanceID = measurement.instanceID,114 timerType = measurement.timerType;115 if (timerType !== 'render') {116 return;117 }118 isCompositeByID[instanceID] = true;119 });120 });121 flushHistory.forEach(function (flush) {122 var measurements = flush.measurements,123 treeSnapshot = flush.treeSnapshot;124 measurements.forEach(function (measurement) {125 var duration = measurement.duration,126 instanceID = measurement.instanceID,127 timerType = measurement.timerType;128 if (timerType !== 'render') {129 return;130 }131 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {132 stats.renderCount++;133 });134 var nextParentID = instanceID;135 while (nextParentID) {136 if (isCompositeByID[nextParentID]) {137 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {138 stats.inclusiveRenderDuration += duration;139 });140 }141 nextParentID = treeSnapshot[nextParentID].parentID;142 }143 });144 });145 return Object.keys(aggregatedStats).map(function (key) {146 return babelHelpers.extends({}, aggregatedStats[key], {147 instanceCount: Object.keys(affectedIDs[key]).length148 });149 }).sort(function (a, b) {150 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;151 });152}153function getWasted() {154 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();155 if (!__DEV__) {156 warnInProduction();157 return [];158 }159 var aggregatedStats = {};160 var affectedIDs = {};161 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {162 var _treeSnapshot$instanc2 = treeSnapshot[instanceID],163 displayName = _treeSnapshot$instanc2.displayName,164 ownerID = _treeSnapshot$instanc2.ownerID;165 var owner = treeSnapshot[ownerID];166 var key = (owner ? owner.displayName + ' > ' : '') + displayName;167 var stats = aggregatedStats[key];168 if (!stats) {169 affectedIDs[key] = {};170 stats = aggregatedStats[key] = {171 key: key,172 instanceCount: 0,173 inclusiveRenderDuration: 0,174 renderCount: 0175 };176 }177 affectedIDs[key][instanceID] = true;178 applyUpdate(stats);179 }180 flushHistory.forEach(function (flush) {181 var measurements = flush.measurements,182 treeSnapshot = flush.treeSnapshot,183 operations = flush.operations;184 var isDefinitelyNotWastedByID = {};185 operations.forEach(function (operation) {186 var instanceID = operation.instanceID;187 var nextParentID = instanceID;188 while (nextParentID) {189 isDefinitelyNotWastedByID[nextParentID] = true;190 nextParentID = treeSnapshot[nextParentID].parentID;191 }192 });193 var renderedCompositeIDs = {};194 measurements.forEach(function (measurement) {195 var instanceID = measurement.instanceID,196 timerType = measurement.timerType;197 if (timerType !== 'render') {198 return;199 }200 renderedCompositeIDs[instanceID] = true;201 });202 measurements.forEach(function (measurement) {203 var duration = measurement.duration,204 instanceID = measurement.instanceID,205 timerType = measurement.timerType;206 if (timerType !== 'render') {207 return;208 }209 var updateCount = treeSnapshot[instanceID].updateCount;210 if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) {211 return;212 }213 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {214 stats.renderCount++;215 });216 var nextParentID = instanceID;217 while (nextParentID) {218 var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID];219 if (isWasted) {220 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {221 stats.inclusiveRenderDuration += duration;222 });223 }224 nextParentID = treeSnapshot[nextParentID].parentID;225 }226 });227 });228 return Object.keys(aggregatedStats).map(function (key) {229 return babelHelpers.extends({}, aggregatedStats[key], {230 instanceCount: Object.keys(affectedIDs[key]).length231 });232 }).sort(function (a, b) {233 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;234 });235}236function getOperations() {237 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();238 if (!__DEV__) {239 warnInProduction();240 return [];241 }242 var stats = [];243 flushHistory.forEach(function (flush, flushIndex) {244 var operations = flush.operations,245 treeSnapshot = flush.treeSnapshot;246 operations.forEach(function (operation) {247 var instanceID = operation.instanceID,248 type = operation.type,249 payload = operation.payload;250 var _treeSnapshot$instanc3 = treeSnapshot[instanceID],251 displayName = _treeSnapshot$instanc3.displayName,252 ownerID = _treeSnapshot$instanc3.ownerID;253 var owner = treeSnapshot[ownerID];254 var key = (owner ? owner.displayName + ' > ' : '') + displayName;255 stats.push({256 flushIndex: flushIndex,257 instanceID: instanceID,258 key: key,259 type: type,260 ownerID: ownerID,261 payload: payload262 });263 });264 });265 return stats;266}267function printExclusive(flushHistory) {268 if (!__DEV__) {269 warnInProduction();270 return;271 }272 var stats = getExclusive(flushHistory);273 var table = stats.map(function (item) {274 var key = item.key,275 instanceCount = item.instanceCount,276 totalDuration = item.totalDuration;277 var renderCount = item.counts.render || 0;278 var renderDuration = item.durations.render || 0;279 return {280 'Component': key,281 'Total time (ms)': roundFloat(totalDuration),282 'Instance count': instanceCount,283 'Total render time (ms)': roundFloat(renderDuration),284 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined,285 'Render count': renderCount,286 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration)287 };288 });289 consoleTable(table);290}291function printInclusive(flushHistory) {292 if (!__DEV__) {293 warnInProduction();294 return;295 }296 var stats = getInclusive(flushHistory);297 var table = stats.map(function (item) {298 var key = item.key,299 instanceCount = item.instanceCount,300 inclusiveRenderDuration = item.inclusiveRenderDuration,301 renderCount = item.renderCount;302 return {303 'Owner > Component': key,304 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration),305 'Instance count': instanceCount,306 'Render count': renderCount307 };308 });309 consoleTable(table);310}311function printWasted(flushHistory) {312 if (!__DEV__) {313 warnInProduction();314 return;315 }316 var stats = getWasted(flushHistory);317 var table = stats.map(function (item) {318 var key = item.key,319 instanceCount = item.instanceCount,320 inclusiveRenderDuration = item.inclusiveRenderDuration,321 renderCount = item.renderCount;322 return {323 'Owner > Component': key,324 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration),325 'Instance count': instanceCount,326 'Render count': renderCount327 };328 });329 consoleTable(table);330}331function printOperations(flushHistory) {332 if (!__DEV__) {333 warnInProduction();334 return;335 }336 var stats = getOperations(flushHistory);337 var table = stats.map(function (stat) {338 return {339 'Owner > Node': stat.key,340 'Operation': stat.type,341 'Payload': typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload,342 'Flush index': stat.flushIndex,343 'Owner Component ID': stat.ownerID,344 'DOM Component ID': stat.instanceID345 };346 });347 consoleTable(table);348}349var warnedAboutPrintDOM = false;350function printDOM(measurements) {351 warning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.');352 warnedAboutPrintDOM = true;353 return printOperations(measurements);354}355var warnedAboutGetMeasurementsSummaryMap = false;356function getMeasurementsSummaryMap(measurements) {357 warning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.');358 warnedAboutGetMeasurementsSummaryMap = true;359 return getWasted(measurements);360}361function start() {362 if (!__DEV__) {363 warnInProduction();364 return;365 }366 ReactDebugTool.beginProfiling();367}368function stop() {369 if (!__DEV__) {370 warnInProduction();371 return;372 }373 ReactDebugTool.endProfiling();374}375function isRunning() {376 if (!__DEV__) {377 warnInProduction();378 return false;379 }380 return ReactDebugTool.isProfiling();381}382var ReactPerfAnalysis = {383 getLastMeasurements: getLastMeasurements,384 getExclusive: getExclusive,385 getInclusive: getInclusive,386 getWasted: getWasted,387 getOperations: getOperations,388 printExclusive: printExclusive,389 printInclusive: printInclusive,390 printWasted: printWasted,391 printOperations: printOperations,...

Full Screen

Full Screen

1e0976ReactPerf.js

Source:1e0976ReactPerf.js Github

copy

Full Screen

...9}10function consoleTable(table) {11 console.table(table);12}13function warnInProduction() {14 if (alreadyWarned) {15 return;16 }17 alreadyWarned = true;18 if (typeof console !== 'undefined') {19 console.error('ReactPerf is not supported in the production builds of React. ' + 'To collect measurements, please use the development build of React instead.');20 }21}22function getLastMeasurements() {23 if (!__DEV__) {24 warnInProduction();25 return [];26 }27 return ReactDebugTool.getFlushHistory();28}29function getExclusive() {30 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();31 if (!__DEV__) {32 warnInProduction();33 return [];34 }35 var aggregatedStats = {};36 var affectedIDs = {};37 function updateAggregatedStats(treeSnapshot, instanceID, timerType, applyUpdate) {38 var displayName = treeSnapshot[instanceID].displayName;39 var key = displayName;40 var stats = aggregatedStats[key];41 if (!stats) {42 affectedIDs[key] = {};43 stats = aggregatedStats[key] = {44 key: key,45 instanceCount: 0,46 counts: {},47 durations: {},48 totalDuration: 049 };50 }51 if (!stats.durations[timerType]) {52 stats.durations[timerType] = 0;53 }54 if (!stats.counts[timerType]) {55 stats.counts[timerType] = 0;56 }57 affectedIDs[key][instanceID] = true;58 applyUpdate(stats);59 }60 flushHistory.forEach(function (flush) {61 var measurements = flush.measurements,62 treeSnapshot = flush.treeSnapshot;63 measurements.forEach(function (measurement) {64 var duration = measurement.duration,65 instanceID = measurement.instanceID,66 timerType = measurement.timerType;67 updateAggregatedStats(treeSnapshot, instanceID, timerType, function (stats) {68 stats.totalDuration += duration;69 stats.durations[timerType] += duration;70 stats.counts[timerType]++;71 });72 });73 });74 return Object.keys(aggregatedStats).map(function (key) {75 return babelHelpers.extends({}, aggregatedStats[key], {76 instanceCount: Object.keys(affectedIDs[key]).length77 });78 }).sort(function (a, b) {79 return b.totalDuration - a.totalDuration;80 });81}82function getInclusive() {83 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();84 if (!__DEV__) {85 warnInProduction();86 return [];87 }88 var aggregatedStats = {};89 var affectedIDs = {};90 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {91 var _treeSnapshot$instanc = treeSnapshot[instanceID],92 displayName = _treeSnapshot$instanc.displayName,93 ownerID = _treeSnapshot$instanc.ownerID;94 var owner = treeSnapshot[ownerID];95 var key = (owner ? owner.displayName + ' > ' : '') + displayName;96 var stats = aggregatedStats[key];97 if (!stats) {98 affectedIDs[key] = {};99 stats = aggregatedStats[key] = {100 key: key,101 instanceCount: 0,102 inclusiveRenderDuration: 0,103 renderCount: 0104 };105 }106 affectedIDs[key][instanceID] = true;107 applyUpdate(stats);108 }109 var isCompositeByID = {};110 flushHistory.forEach(function (flush) {111 var measurements = flush.measurements;112 measurements.forEach(function (measurement) {113 var instanceID = measurement.instanceID,114 timerType = measurement.timerType;115 if (timerType !== 'render') {116 return;117 }118 isCompositeByID[instanceID] = true;119 });120 });121 flushHistory.forEach(function (flush) {122 var measurements = flush.measurements,123 treeSnapshot = flush.treeSnapshot;124 measurements.forEach(function (measurement) {125 var duration = measurement.duration,126 instanceID = measurement.instanceID,127 timerType = measurement.timerType;128 if (timerType !== 'render') {129 return;130 }131 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {132 stats.renderCount++;133 });134 var nextParentID = instanceID;135 while (nextParentID) {136 if (isCompositeByID[nextParentID]) {137 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {138 stats.inclusiveRenderDuration += duration;139 });140 }141 nextParentID = treeSnapshot[nextParentID].parentID;142 }143 });144 });145 return Object.keys(aggregatedStats).map(function (key) {146 return babelHelpers.extends({}, aggregatedStats[key], {147 instanceCount: Object.keys(affectedIDs[key]).length148 });149 }).sort(function (a, b) {150 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;151 });152}153function getWasted() {154 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();155 if (!__DEV__) {156 warnInProduction();157 return [];158 }159 var aggregatedStats = {};160 var affectedIDs = {};161 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {162 var _treeSnapshot$instanc2 = treeSnapshot[instanceID],163 displayName = _treeSnapshot$instanc2.displayName,164 ownerID = _treeSnapshot$instanc2.ownerID;165 var owner = treeSnapshot[ownerID];166 var key = (owner ? owner.displayName + ' > ' : '') + displayName;167 var stats = aggregatedStats[key];168 if (!stats) {169 affectedIDs[key] = {};170 stats = aggregatedStats[key] = {171 key: key,172 instanceCount: 0,173 inclusiveRenderDuration: 0,174 renderCount: 0175 };176 }177 affectedIDs[key][instanceID] = true;178 applyUpdate(stats);179 }180 flushHistory.forEach(function (flush) {181 var measurements = flush.measurements,182 treeSnapshot = flush.treeSnapshot,183 operations = flush.operations;184 var isDefinitelyNotWastedByID = {};185 operations.forEach(function (operation) {186 var instanceID = operation.instanceID;187 var nextParentID = instanceID;188 while (nextParentID) {189 isDefinitelyNotWastedByID[nextParentID] = true;190 nextParentID = treeSnapshot[nextParentID].parentID;191 }192 });193 var renderedCompositeIDs = {};194 measurements.forEach(function (measurement) {195 var instanceID = measurement.instanceID,196 timerType = measurement.timerType;197 if (timerType !== 'render') {198 return;199 }200 renderedCompositeIDs[instanceID] = true;201 });202 measurements.forEach(function (measurement) {203 var duration = measurement.duration,204 instanceID = measurement.instanceID,205 timerType = measurement.timerType;206 if (timerType !== 'render') {207 return;208 }209 var updateCount = treeSnapshot[instanceID].updateCount;210 if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) {211 return;212 }213 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {214 stats.renderCount++;215 });216 var nextParentID = instanceID;217 while (nextParentID) {218 var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID];219 if (isWasted) {220 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {221 stats.inclusiveRenderDuration += duration;222 });223 }224 nextParentID = treeSnapshot[nextParentID].parentID;225 }226 });227 });228 return Object.keys(aggregatedStats).map(function (key) {229 return babelHelpers.extends({}, aggregatedStats[key], {230 instanceCount: Object.keys(affectedIDs[key]).length231 });232 }).sort(function (a, b) {233 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;234 });235}236function getOperations() {237 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();238 if (!__DEV__) {239 warnInProduction();240 return [];241 }242 var stats = [];243 flushHistory.forEach(function (flush, flushIndex) {244 var operations = flush.operations,245 treeSnapshot = flush.treeSnapshot;246 operations.forEach(function (operation) {247 var instanceID = operation.instanceID,248 type = operation.type,249 payload = operation.payload;250 var _treeSnapshot$instanc3 = treeSnapshot[instanceID],251 displayName = _treeSnapshot$instanc3.displayName,252 ownerID = _treeSnapshot$instanc3.ownerID;253 var owner = treeSnapshot[ownerID];254 var key = (owner ? owner.displayName + ' > ' : '') + displayName;255 stats.push({256 flushIndex: flushIndex,257 instanceID: instanceID,258 key: key,259 type: type,260 ownerID: ownerID,261 payload: payload262 });263 });264 });265 return stats;266}267function printExclusive(flushHistory) {268 if (!__DEV__) {269 warnInProduction();270 return;271 }272 var stats = getExclusive(flushHistory);273 var table = stats.map(function (item) {274 var key = item.key,275 instanceCount = item.instanceCount,276 totalDuration = item.totalDuration;277 var renderCount = item.counts.render || 0;278 var renderDuration = item.durations.render || 0;279 return {280 'Component': key,281 'Total time (ms)': roundFloat(totalDuration),282 'Instance count': instanceCount,283 'Total render time (ms)': roundFloat(renderDuration),284 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined,285 'Render count': renderCount,286 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration)287 };288 });289 consoleTable(table);290}291function printInclusive(flushHistory) {292 if (!__DEV__) {293 warnInProduction();294 return;295 }296 var stats = getInclusive(flushHistory);297 var table = stats.map(function (item) {298 var key = item.key,299 instanceCount = item.instanceCount,300 inclusiveRenderDuration = item.inclusiveRenderDuration,301 renderCount = item.renderCount;302 return {303 'Owner > Component': key,304 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration),305 'Instance count': instanceCount,306 'Render count': renderCount307 };308 });309 consoleTable(table);310}311function printWasted(flushHistory) {312 if (!__DEV__) {313 warnInProduction();314 return;315 }316 var stats = getWasted(flushHistory);317 var table = stats.map(function (item) {318 var key = item.key,319 instanceCount = item.instanceCount,320 inclusiveRenderDuration = item.inclusiveRenderDuration,321 renderCount = item.renderCount;322 return {323 'Owner > Component': key,324 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration),325 'Instance count': instanceCount,326 'Render count': renderCount327 };328 });329 consoleTable(table);330}331function printOperations(flushHistory) {332 if (!__DEV__) {333 warnInProduction();334 return;335 }336 var stats = getOperations(flushHistory);337 var table = stats.map(function (stat) {338 return {339 'Owner > Node': stat.key,340 'Operation': stat.type,341 'Payload': typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload,342 'Flush index': stat.flushIndex,343 'Owner Component ID': stat.ownerID,344 'DOM Component ID': stat.instanceID345 };346 });347 consoleTable(table);348}349var warnedAboutPrintDOM = false;350function printDOM(measurements) {351 warning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.');352 warnedAboutPrintDOM = true;353 return printOperations(measurements);354}355var warnedAboutGetMeasurementsSummaryMap = false;356function getMeasurementsSummaryMap(measurements) {357 warning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.');358 warnedAboutGetMeasurementsSummaryMap = true;359 return getWasted(measurements);360}361function start() {362 if (!__DEV__) {363 warnInProduction();364 return;365 }366 ReactDebugTool.beginProfiling();367}368function stop() {369 if (!__DEV__) {370 warnInProduction();371 return;372 }373 ReactDebugTool.endProfiling();374}375function isRunning() {376 if (!__DEV__) {377 warnInProduction();378 return false;379 }380 return ReactDebugTool.isProfiling();381}382var ReactPerfAnalysis = {383 getLastMeasurements: getLastMeasurements,384 getExclusive: getExclusive,385 getInclusive: getInclusive,386 getWasted: getWasted,387 getOperations: getOperations,388 printExclusive: printExclusive,389 printInclusive: printInclusive,390 printWasted: printWasted,391 printOperations: printOperations,...

Full Screen

Full Screen

16edb4adaa753cbcca816d5dd5f0bc041a1046ReactPerf.js

Source:16edb4adaa753cbcca816d5dd5f0bc041a1046ReactPerf.js Github

copy

Full Screen

...9}10function consoleTable(table) {11 console.table(table);12}13function warnInProduction() {14 if (alreadyWarned) {15 return;16 }17 alreadyWarned = true;18 if (typeof console !== 'undefined') {19 console.error('ReactPerf is not supported in the production builds of React. ' + 'To collect measurements, please use the development build of React instead.');20 }21}22function getLastMeasurements() {23 if (!__DEV__) {24 warnInProduction();25 return [];26 }27 return ReactDebugTool.getFlushHistory();28}29function getExclusive() {30 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();31 if (!__DEV__) {32 warnInProduction();33 return [];34 }35 var aggregatedStats = {};36 var affectedIDs = {};37 function updateAggregatedStats(treeSnapshot, instanceID, timerType, applyUpdate) {38 var displayName = treeSnapshot[instanceID].displayName;39 var key = displayName;40 var stats = aggregatedStats[key];41 if (!stats) {42 affectedIDs[key] = {};43 stats = aggregatedStats[key] = {44 key: key,45 instanceCount: 0,46 counts: {},47 durations: {},48 totalDuration: 049 };50 }51 if (!stats.durations[timerType]) {52 stats.durations[timerType] = 0;53 }54 if (!stats.counts[timerType]) {55 stats.counts[timerType] = 0;56 }57 affectedIDs[key][instanceID] = true;58 applyUpdate(stats);59 }60 flushHistory.forEach(function (flush) {61 var measurements = flush.measurements,62 treeSnapshot = flush.treeSnapshot;63 measurements.forEach(function (measurement) {64 var duration = measurement.duration,65 instanceID = measurement.instanceID,66 timerType = measurement.timerType;67 updateAggregatedStats(treeSnapshot, instanceID, timerType, function (stats) {68 stats.totalDuration += duration;69 stats.durations[timerType] += duration;70 stats.counts[timerType]++;71 });72 });73 });74 return Object.keys(aggregatedStats).map(function (key) {75 return babelHelpers.extends({}, aggregatedStats[key], {76 instanceCount: Object.keys(affectedIDs[key]).length77 });78 }).sort(function (a, b) {79 return b.totalDuration - a.totalDuration;80 });81}82function getInclusive() {83 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();84 if (!__DEV__) {85 warnInProduction();86 return [];87 }88 var aggregatedStats = {};89 var affectedIDs = {};90 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {91 var _treeSnapshot$instanc = treeSnapshot[instanceID],92 displayName = _treeSnapshot$instanc.displayName,93 ownerID = _treeSnapshot$instanc.ownerID;94 var owner = treeSnapshot[ownerID];95 var key = (owner ? owner.displayName + ' > ' : '') + displayName;96 var stats = aggregatedStats[key];97 if (!stats) {98 affectedIDs[key] = {};99 stats = aggregatedStats[key] = {100 key: key,101 instanceCount: 0,102 inclusiveRenderDuration: 0,103 renderCount: 0104 };105 }106 affectedIDs[key][instanceID] = true;107 applyUpdate(stats);108 }109 var isCompositeByID = {};110 flushHistory.forEach(function (flush) {111 var measurements = flush.measurements;112 measurements.forEach(function (measurement) {113 var instanceID = measurement.instanceID,114 timerType = measurement.timerType;115 if (timerType !== 'render') {116 return;117 }118 isCompositeByID[instanceID] = true;119 });120 });121 flushHistory.forEach(function (flush) {122 var measurements = flush.measurements,123 treeSnapshot = flush.treeSnapshot;124 measurements.forEach(function (measurement) {125 var duration = measurement.duration,126 instanceID = measurement.instanceID,127 timerType = measurement.timerType;128 if (timerType !== 'render') {129 return;130 }131 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {132 stats.renderCount++;133 });134 var nextParentID = instanceID;135 while (nextParentID) {136 if (isCompositeByID[nextParentID]) {137 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {138 stats.inclusiveRenderDuration += duration;139 });140 }141 nextParentID = treeSnapshot[nextParentID].parentID;142 }143 });144 });145 return Object.keys(aggregatedStats).map(function (key) {146 return babelHelpers.extends({}, aggregatedStats[key], {147 instanceCount: Object.keys(affectedIDs[key]).length148 });149 }).sort(function (a, b) {150 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;151 });152}153function getWasted() {154 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();155 if (!__DEV__) {156 warnInProduction();157 return [];158 }159 var aggregatedStats = {};160 var affectedIDs = {};161 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {162 var _treeSnapshot$instanc2 = treeSnapshot[instanceID],163 displayName = _treeSnapshot$instanc2.displayName,164 ownerID = _treeSnapshot$instanc2.ownerID;165 var owner = treeSnapshot[ownerID];166 var key = (owner ? owner.displayName + ' > ' : '') + displayName;167 var stats = aggregatedStats[key];168 if (!stats) {169 affectedIDs[key] = {};170 stats = aggregatedStats[key] = {171 key: key,172 instanceCount: 0,173 inclusiveRenderDuration: 0,174 renderCount: 0175 };176 }177 affectedIDs[key][instanceID] = true;178 applyUpdate(stats);179 }180 flushHistory.forEach(function (flush) {181 var measurements = flush.measurements,182 treeSnapshot = flush.treeSnapshot,183 operations = flush.operations;184 var isDefinitelyNotWastedByID = {};185 operations.forEach(function (operation) {186 var instanceID = operation.instanceID;187 var nextParentID = instanceID;188 while (nextParentID) {189 isDefinitelyNotWastedByID[nextParentID] = true;190 nextParentID = treeSnapshot[nextParentID].parentID;191 }192 });193 var renderedCompositeIDs = {};194 measurements.forEach(function (measurement) {195 var instanceID = measurement.instanceID,196 timerType = measurement.timerType;197 if (timerType !== 'render') {198 return;199 }200 renderedCompositeIDs[instanceID] = true;201 });202 measurements.forEach(function (measurement) {203 var duration = measurement.duration,204 instanceID = measurement.instanceID,205 timerType = measurement.timerType;206 if (timerType !== 'render') {207 return;208 }209 var updateCount = treeSnapshot[instanceID].updateCount;210 if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) {211 return;212 }213 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {214 stats.renderCount++;215 });216 var nextParentID = instanceID;217 while (nextParentID) {218 var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID];219 if (isWasted) {220 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {221 stats.inclusiveRenderDuration += duration;222 });223 }224 nextParentID = treeSnapshot[nextParentID].parentID;225 }226 });227 });228 return Object.keys(aggregatedStats).map(function (key) {229 return babelHelpers.extends({}, aggregatedStats[key], {230 instanceCount: Object.keys(affectedIDs[key]).length231 });232 }).sort(function (a, b) {233 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;234 });235}236function getOperations() {237 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();238 if (!__DEV__) {239 warnInProduction();240 return [];241 }242 var stats = [];243 flushHistory.forEach(function (flush, flushIndex) {244 var operations = flush.operations,245 treeSnapshot = flush.treeSnapshot;246 operations.forEach(function (operation) {247 var instanceID = operation.instanceID,248 type = operation.type,249 payload = operation.payload;250 var _treeSnapshot$instanc3 = treeSnapshot[instanceID],251 displayName = _treeSnapshot$instanc3.displayName,252 ownerID = _treeSnapshot$instanc3.ownerID;253 var owner = treeSnapshot[ownerID];254 var key = (owner ? owner.displayName + ' > ' : '') + displayName;255 stats.push({256 flushIndex: flushIndex,257 instanceID: instanceID,258 key: key,259 type: type,260 ownerID: ownerID,261 payload: payload262 });263 });264 });265 return stats;266}267function printExclusive(flushHistory) {268 if (!__DEV__) {269 warnInProduction();270 return;271 }272 var stats = getExclusive(flushHistory);273 var table = stats.map(function (item) {274 var key = item.key,275 instanceCount = item.instanceCount,276 totalDuration = item.totalDuration;277 var renderCount = item.counts.render || 0;278 var renderDuration = item.durations.render || 0;279 return {280 Component: key,281 'Total time (ms)': roundFloat(totalDuration),282 'Instance count': instanceCount,283 'Total render time (ms)': roundFloat(renderDuration),284 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined,285 'Render count': renderCount,286 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration)287 };288 });289 consoleTable(table);290}291function printInclusive(flushHistory) {292 if (!__DEV__) {293 warnInProduction();294 return;295 }296 var stats = getInclusive(flushHistory);297 var table = stats.map(function (item) {298 var key = item.key,299 instanceCount = item.instanceCount,300 inclusiveRenderDuration = item.inclusiveRenderDuration,301 renderCount = item.renderCount;302 return {303 'Owner > Component': key,304 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration),305 'Instance count': instanceCount,306 'Render count': renderCount307 };308 });309 consoleTable(table);310}311function printWasted(flushHistory) {312 if (!__DEV__) {313 warnInProduction();314 return;315 }316 var stats = getWasted(flushHistory);317 var table = stats.map(function (item) {318 var key = item.key,319 instanceCount = item.instanceCount,320 inclusiveRenderDuration = item.inclusiveRenderDuration,321 renderCount = item.renderCount;322 return {323 'Owner > Component': key,324 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration),325 'Instance count': instanceCount,326 'Render count': renderCount327 };328 });329 consoleTable(table);330}331function printOperations(flushHistory) {332 if (!__DEV__) {333 warnInProduction();334 return;335 }336 var stats = getOperations(flushHistory);337 var table = stats.map(function (stat) {338 return {339 'Owner > Node': stat.key,340 Operation: stat.type,341 Payload: typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload,342 'Flush index': stat.flushIndex,343 'Owner Component ID': stat.ownerID,344 'DOM Component ID': stat.instanceID345 };346 });347 consoleTable(table);348}349var warnedAboutPrintDOM = false;350function printDOM(measurements) {351 warning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.');352 warnedAboutPrintDOM = true;353 return printOperations(measurements);354}355var warnedAboutGetMeasurementsSummaryMap = false;356function getMeasurementsSummaryMap(measurements) {357 warning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.');358 warnedAboutGetMeasurementsSummaryMap = true;359 return getWasted(measurements);360}361function start() {362 if (!__DEV__) {363 warnInProduction();364 return;365 }366 ReactDebugTool.beginProfiling();367}368function stop() {369 if (!__DEV__) {370 warnInProduction();371 return;372 }373 ReactDebugTool.endProfiling();374}375function isRunning() {376 if (!__DEV__) {377 warnInProduction();378 return false;379 }380 return ReactDebugTool.isProfiling();381}382var ReactPerfAnalysis = {383 getLastMeasurements: getLastMeasurements,384 getExclusive: getExclusive,385 getInclusive: getInclusive,386 getWasted: getWasted,387 getOperations: getOperations,388 printExclusive: printExclusive,389 printInclusive: printInclusive,390 printWasted: printWasted,391 printOperations: printOperations,...

Full Screen

Full Screen

d2efab3087c06216933343e6f4b71b9bc9dba0ReactPerf.js

Source:d2efab3087c06216933343e6f4b71b9bc9dba0ReactPerf.js Github

copy

Full Screen

...9}10function consoleTable(table) {11 console.table(table);12}13function warnInProduction() {14 if (alreadyWarned) {15 return;16 }17 alreadyWarned = true;18 if (typeof console !== 'undefined') {19 console.error('ReactPerf is not supported in the production builds of React. ' + 'To collect measurements, please use the development build of React instead.');20 }21}22function getLastMeasurements() {23 if (!__DEV__) {24 warnInProduction();25 return [];26 }27 return ReactDebugTool.getFlushHistory();28}29function getExclusive() {30 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();31 if (!__DEV__) {32 warnInProduction();33 return [];34 }35 var aggregatedStats = {};36 var affectedIDs = {};37 function updateAggregatedStats(treeSnapshot, instanceID, timerType, applyUpdate) {38 var displayName = treeSnapshot[instanceID].displayName;39 var key = displayName;40 var stats = aggregatedStats[key];41 if (!stats) {42 affectedIDs[key] = {};43 stats = aggregatedStats[key] = {44 key: key,45 instanceCount: 0,46 counts: {},47 durations: {},48 totalDuration: 049 };50 }51 if (!stats.durations[timerType]) {52 stats.durations[timerType] = 0;53 }54 if (!stats.counts[timerType]) {55 stats.counts[timerType] = 0;56 }57 affectedIDs[key][instanceID] = true;58 applyUpdate(stats);59 }60 flushHistory.forEach(function (flush) {61 var measurements = flush.measurements,62 treeSnapshot = flush.treeSnapshot;63 measurements.forEach(function (measurement) {64 var duration = measurement.duration,65 instanceID = measurement.instanceID,66 timerType = measurement.timerType;67 updateAggregatedStats(treeSnapshot, instanceID, timerType, function (stats) {68 stats.totalDuration += duration;69 stats.durations[timerType] += duration;70 stats.counts[timerType]++;71 });72 });73 });74 return Object.keys(aggregatedStats).map(function (key) {75 return babelHelpers.extends({}, aggregatedStats[key], {76 instanceCount: Object.keys(affectedIDs[key]).length77 });78 }).sort(function (a, b) {79 return b.totalDuration - a.totalDuration;80 });81}82function getInclusive() {83 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();84 if (!__DEV__) {85 warnInProduction();86 return [];87 }88 var aggregatedStats = {};89 var affectedIDs = {};90 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {91 var _treeSnapshot$instanc = treeSnapshot[instanceID],92 displayName = _treeSnapshot$instanc.displayName,93 ownerID = _treeSnapshot$instanc.ownerID;94 var owner = treeSnapshot[ownerID];95 var key = (owner ? owner.displayName + ' > ' : '') + displayName;96 var stats = aggregatedStats[key];97 if (!stats) {98 affectedIDs[key] = {};99 stats = aggregatedStats[key] = {100 key: key,101 instanceCount: 0,102 inclusiveRenderDuration: 0,103 renderCount: 0104 };105 }106 affectedIDs[key][instanceID] = true;107 applyUpdate(stats);108 }109 var isCompositeByID = {};110 flushHistory.forEach(function (flush) {111 var measurements = flush.measurements;112 measurements.forEach(function (measurement) {113 var instanceID = measurement.instanceID,114 timerType = measurement.timerType;115 if (timerType !== 'render') {116 return;117 }118 isCompositeByID[instanceID] = true;119 });120 });121 flushHistory.forEach(function (flush) {122 var measurements = flush.measurements,123 treeSnapshot = flush.treeSnapshot;124 measurements.forEach(function (measurement) {125 var duration = measurement.duration,126 instanceID = measurement.instanceID,127 timerType = measurement.timerType;128 if (timerType !== 'render') {129 return;130 }131 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {132 stats.renderCount++;133 });134 var nextParentID = instanceID;135 while (nextParentID) {136 if (isCompositeByID[nextParentID]) {137 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {138 stats.inclusiveRenderDuration += duration;139 });140 }141 nextParentID = treeSnapshot[nextParentID].parentID;142 }143 });144 });145 return Object.keys(aggregatedStats).map(function (key) {146 return babelHelpers.extends({}, aggregatedStats[key], {147 instanceCount: Object.keys(affectedIDs[key]).length148 });149 }).sort(function (a, b) {150 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;151 });152}153function getWasted() {154 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();155 if (!__DEV__) {156 warnInProduction();157 return [];158 }159 var aggregatedStats = {};160 var affectedIDs = {};161 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {162 var _treeSnapshot$instanc2 = treeSnapshot[instanceID],163 displayName = _treeSnapshot$instanc2.displayName,164 ownerID = _treeSnapshot$instanc2.ownerID;165 var owner = treeSnapshot[ownerID];166 var key = (owner ? owner.displayName + ' > ' : '') + displayName;167 var stats = aggregatedStats[key];168 if (!stats) {169 affectedIDs[key] = {};170 stats = aggregatedStats[key] = {171 key: key,172 instanceCount: 0,173 inclusiveRenderDuration: 0,174 renderCount: 0175 };176 }177 affectedIDs[key][instanceID] = true;178 applyUpdate(stats);179 }180 flushHistory.forEach(function (flush) {181 var measurements = flush.measurements,182 treeSnapshot = flush.treeSnapshot,183 operations = flush.operations;184 var isDefinitelyNotWastedByID = {};185 operations.forEach(function (operation) {186 var instanceID = operation.instanceID;187 var nextParentID = instanceID;188 while (nextParentID) {189 isDefinitelyNotWastedByID[nextParentID] = true;190 nextParentID = treeSnapshot[nextParentID].parentID;191 }192 });193 var renderedCompositeIDs = {};194 measurements.forEach(function (measurement) {195 var instanceID = measurement.instanceID,196 timerType = measurement.timerType;197 if (timerType !== 'render') {198 return;199 }200 renderedCompositeIDs[instanceID] = true;201 });202 measurements.forEach(function (measurement) {203 var duration = measurement.duration,204 instanceID = measurement.instanceID,205 timerType = measurement.timerType;206 if (timerType !== 'render') {207 return;208 }209 var updateCount = treeSnapshot[instanceID].updateCount;210 if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) {211 return;212 }213 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {214 stats.renderCount++;215 });216 var nextParentID = instanceID;217 while (nextParentID) {218 var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID];219 if (isWasted) {220 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {221 stats.inclusiveRenderDuration += duration;222 });223 }224 nextParentID = treeSnapshot[nextParentID].parentID;225 }226 });227 });228 return Object.keys(aggregatedStats).map(function (key) {229 return babelHelpers.extends({}, aggregatedStats[key], {230 instanceCount: Object.keys(affectedIDs[key]).length231 });232 }).sort(function (a, b) {233 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;234 });235}236function getOperations() {237 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();238 if (!__DEV__) {239 warnInProduction();240 return [];241 }242 var stats = [];243 flushHistory.forEach(function (flush, flushIndex) {244 var operations = flush.operations,245 treeSnapshot = flush.treeSnapshot;246 operations.forEach(function (operation) {247 var instanceID = operation.instanceID,248 type = operation.type,249 payload = operation.payload;250 var _treeSnapshot$instanc3 = treeSnapshot[instanceID],251 displayName = _treeSnapshot$instanc3.displayName,252 ownerID = _treeSnapshot$instanc3.ownerID;253 var owner = treeSnapshot[ownerID];254 var key = (owner ? owner.displayName + ' > ' : '') + displayName;255 stats.push({256 flushIndex: flushIndex,257 instanceID: instanceID,258 key: key,259 type: type,260 ownerID: ownerID,261 payload: payload262 });263 });264 });265 return stats;266}267function printExclusive(flushHistory) {268 if (!__DEV__) {269 warnInProduction();270 return;271 }272 var stats = getExclusive(flushHistory);273 var table = stats.map(function (item) {274 var key = item.key,275 instanceCount = item.instanceCount,276 totalDuration = item.totalDuration;277 var renderCount = item.counts.render || 0;278 var renderDuration = item.durations.render || 0;279 return {280 Component: key,281 'Total time (ms)': roundFloat(totalDuration),282 'Instance count': instanceCount,283 'Total render time (ms)': roundFloat(renderDuration),284 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined,285 'Render count': renderCount,286 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration)287 };288 });289 consoleTable(table);290}291function printInclusive(flushHistory) {292 if (!__DEV__) {293 warnInProduction();294 return;295 }296 var stats = getInclusive(flushHistory);297 var table = stats.map(function (item) {298 var key = item.key,299 instanceCount = item.instanceCount,300 inclusiveRenderDuration = item.inclusiveRenderDuration,301 renderCount = item.renderCount;302 return {303 'Owner > Component': key,304 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration),305 'Instance count': instanceCount,306 'Render count': renderCount307 };308 });309 consoleTable(table);310}311function printWasted(flushHistory) {312 if (!__DEV__) {313 warnInProduction();314 return;315 }316 var stats = getWasted(flushHistory);317 var table = stats.map(function (item) {318 var key = item.key,319 instanceCount = item.instanceCount,320 inclusiveRenderDuration = item.inclusiveRenderDuration,321 renderCount = item.renderCount;322 return {323 'Owner > Component': key,324 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration),325 'Instance count': instanceCount,326 'Render count': renderCount327 };328 });329 consoleTable(table);330}331function printOperations(flushHistory) {332 if (!__DEV__) {333 warnInProduction();334 return;335 }336 var stats = getOperations(flushHistory);337 var table = stats.map(function (stat) {338 return {339 'Owner > Node': stat.key,340 Operation: stat.type,341 Payload: typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload,342 'Flush index': stat.flushIndex,343 'Owner Component ID': stat.ownerID,344 'DOM Component ID': stat.instanceID345 };346 });347 consoleTable(table);348}349var warnedAboutPrintDOM = false;350function printDOM(measurements) {351 warning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.');352 warnedAboutPrintDOM = true;353 return printOperations(measurements);354}355var warnedAboutGetMeasurementsSummaryMap = false;356function getMeasurementsSummaryMap(measurements) {357 warning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.');358 warnedAboutGetMeasurementsSummaryMap = true;359 return getWasted(measurements);360}361function start() {362 if (!__DEV__) {363 warnInProduction();364 return;365 }366 ReactDebugTool.beginProfiling();367}368function stop() {369 if (!__DEV__) {370 warnInProduction();371 return;372 }373 ReactDebugTool.endProfiling();374}375function isRunning() {376 if (!__DEV__) {377 warnInProduction();378 return false;379 }380 return ReactDebugTool.isProfiling();381}382var ReactPerfAnalysis = {383 getLastMeasurements: getLastMeasurements,384 getExclusive: getExclusive,385 getInclusive: getInclusive,386 getWasted: getWasted,387 getOperations: getOperations,388 printExclusive: printExclusive,389 printInclusive: printInclusive,390 printWasted: printWasted,391 printOperations: printOperations,...

Full Screen

Full Screen

44faf03d3215f1255542ab8cd23e8eca803308ReactPerf.js

Source:44faf03d3215f1255542ab8cd23e8eca803308ReactPerf.js Github

copy

Full Screen

...9}10function consoleTable(table) {11 console.table(table);12}13function warnInProduction() {14 if (alreadyWarned) {15 return;16 }17 alreadyWarned = true;18 if (typeof console !== 'undefined') {19 console.error('ReactPerf is not supported in the production builds of React. ' + 'To collect measurements, please use the development build of React instead.');20 }21}22function getLastMeasurements() {23 if (!__DEV__) {24 warnInProduction();25 return [];26 }27 return ReactDebugTool.getFlushHistory();28}29function getExclusive() {30 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();31 if (!__DEV__) {32 warnInProduction();33 return [];34 }35 var aggregatedStats = {};36 var affectedIDs = {};37 function updateAggregatedStats(treeSnapshot, instanceID, timerType, applyUpdate) {38 var displayName = treeSnapshot[instanceID].displayName;39 var key = displayName;40 var stats = aggregatedStats[key];41 if (!stats) {42 affectedIDs[key] = {};43 stats = aggregatedStats[key] = {44 key: key,45 instanceCount: 0,46 counts: {},47 durations: {},48 totalDuration: 049 };50 }51 if (!stats.durations[timerType]) {52 stats.durations[timerType] = 0;53 }54 if (!stats.counts[timerType]) {55 stats.counts[timerType] = 0;56 }57 affectedIDs[key][instanceID] = true;58 applyUpdate(stats);59 }60 flushHistory.forEach(function (flush) {61 var measurements = flush.measurements,62 treeSnapshot = flush.treeSnapshot;63 measurements.forEach(function (measurement) {64 var duration = measurement.duration,65 instanceID = measurement.instanceID,66 timerType = measurement.timerType;67 updateAggregatedStats(treeSnapshot, instanceID, timerType, function (stats) {68 stats.totalDuration += duration;69 stats.durations[timerType] += duration;70 stats.counts[timerType]++;71 });72 });73 });74 return Object.keys(aggregatedStats).map(function (key) {75 return babelHelpers.extends({}, aggregatedStats[key], {76 instanceCount: Object.keys(affectedIDs[key]).length77 });78 }).sort(function (a, b) {79 return b.totalDuration - a.totalDuration;80 });81}82function getInclusive() {83 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();84 if (!__DEV__) {85 warnInProduction();86 return [];87 }88 var aggregatedStats = {};89 var affectedIDs = {};90 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {91 var _treeSnapshot$instanc = treeSnapshot[instanceID],92 displayName = _treeSnapshot$instanc.displayName,93 ownerID = _treeSnapshot$instanc.ownerID;94 var owner = treeSnapshot[ownerID];95 var key = (owner ? owner.displayName + ' > ' : '') + displayName;96 var stats = aggregatedStats[key];97 if (!stats) {98 affectedIDs[key] = {};99 stats = aggregatedStats[key] = {100 key: key,101 instanceCount: 0,102 inclusiveRenderDuration: 0,103 renderCount: 0104 };105 }106 affectedIDs[key][instanceID] = true;107 applyUpdate(stats);108 }109 var isCompositeByID = {};110 flushHistory.forEach(function (flush) {111 var measurements = flush.measurements;112 measurements.forEach(function (measurement) {113 var instanceID = measurement.instanceID,114 timerType = measurement.timerType;115 if (timerType !== 'render') {116 return;117 }118 isCompositeByID[instanceID] = true;119 });120 });121 flushHistory.forEach(function (flush) {122 var measurements = flush.measurements,123 treeSnapshot = flush.treeSnapshot;124 measurements.forEach(function (measurement) {125 var duration = measurement.duration,126 instanceID = measurement.instanceID,127 timerType = measurement.timerType;128 if (timerType !== 'render') {129 return;130 }131 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {132 stats.renderCount++;133 });134 var nextParentID = instanceID;135 while (nextParentID) {136 if (isCompositeByID[nextParentID]) {137 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {138 stats.inclusiveRenderDuration += duration;139 });140 }141 nextParentID = treeSnapshot[nextParentID].parentID;142 }143 });144 });145 return Object.keys(aggregatedStats).map(function (key) {146 return babelHelpers.extends({}, aggregatedStats[key], {147 instanceCount: Object.keys(affectedIDs[key]).length148 });149 }).sort(function (a, b) {150 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;151 });152}153function getWasted() {154 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();155 if (!__DEV__) {156 warnInProduction();157 return [];158 }159 var aggregatedStats = {};160 var affectedIDs = {};161 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {162 var _treeSnapshot$instanc2 = treeSnapshot[instanceID],163 displayName = _treeSnapshot$instanc2.displayName,164 ownerID = _treeSnapshot$instanc2.ownerID;165 var owner = treeSnapshot[ownerID];166 var key = (owner ? owner.displayName + ' > ' : '') + displayName;167 var stats = aggregatedStats[key];168 if (!stats) {169 affectedIDs[key] = {};170 stats = aggregatedStats[key] = {171 key: key,172 instanceCount: 0,173 inclusiveRenderDuration: 0,174 renderCount: 0175 };176 }177 affectedIDs[key][instanceID] = true;178 applyUpdate(stats);179 }180 flushHistory.forEach(function (flush) {181 var measurements = flush.measurements,182 treeSnapshot = flush.treeSnapshot,183 operations = flush.operations;184 var isDefinitelyNotWastedByID = {};185 operations.forEach(function (operation) {186 var instanceID = operation.instanceID;187 var nextParentID = instanceID;188 while (nextParentID) {189 isDefinitelyNotWastedByID[nextParentID] = true;190 nextParentID = treeSnapshot[nextParentID].parentID;191 }192 });193 var renderedCompositeIDs = {};194 measurements.forEach(function (measurement) {195 var instanceID = measurement.instanceID,196 timerType = measurement.timerType;197 if (timerType !== 'render') {198 return;199 }200 renderedCompositeIDs[instanceID] = true;201 });202 measurements.forEach(function (measurement) {203 var duration = measurement.duration,204 instanceID = measurement.instanceID,205 timerType = measurement.timerType;206 if (timerType !== 'render') {207 return;208 }209 var updateCount = treeSnapshot[instanceID].updateCount;210 if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) {211 return;212 }213 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {214 stats.renderCount++;215 });216 var nextParentID = instanceID;217 while (nextParentID) {218 var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID];219 if (isWasted) {220 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {221 stats.inclusiveRenderDuration += duration;222 });223 }224 nextParentID = treeSnapshot[nextParentID].parentID;225 }226 });227 });228 return Object.keys(aggregatedStats).map(function (key) {229 return babelHelpers.extends({}, aggregatedStats[key], {230 instanceCount: Object.keys(affectedIDs[key]).length231 });232 }).sort(function (a, b) {233 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;234 });235}236function getOperations() {237 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();238 if (!__DEV__) {239 warnInProduction();240 return [];241 }242 var stats = [];243 flushHistory.forEach(function (flush, flushIndex) {244 var operations = flush.operations,245 treeSnapshot = flush.treeSnapshot;246 operations.forEach(function (operation) {247 var instanceID = operation.instanceID,248 type = operation.type,249 payload = operation.payload;250 var _treeSnapshot$instanc3 = treeSnapshot[instanceID],251 displayName = _treeSnapshot$instanc3.displayName,252 ownerID = _treeSnapshot$instanc3.ownerID;253 var owner = treeSnapshot[ownerID];254 var key = (owner ? owner.displayName + ' > ' : '') + displayName;255 stats.push({256 flushIndex: flushIndex,257 instanceID: instanceID,258 key: key,259 type: type,260 ownerID: ownerID,261 payload: payload262 });263 });264 });265 return stats;266}267function printExclusive(flushHistory) {268 if (!__DEV__) {269 warnInProduction();270 return;271 }272 var stats = getExclusive(flushHistory);273 var table = stats.map(function (item) {274 var key = item.key,275 instanceCount = item.instanceCount,276 totalDuration = item.totalDuration;277 var renderCount = item.counts.render || 0;278 var renderDuration = item.durations.render || 0;279 return {280 Component: key,281 'Total time (ms)': roundFloat(totalDuration),282 'Instance count': instanceCount,283 'Total render time (ms)': roundFloat(renderDuration),284 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined,285 'Render count': renderCount,286 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration)287 };288 });289 consoleTable(table);290}291function printInclusive(flushHistory) {292 if (!__DEV__) {293 warnInProduction();294 return;295 }296 var stats = getInclusive(flushHistory);297 var table = stats.map(function (item) {298 var key = item.key,299 instanceCount = item.instanceCount,300 inclusiveRenderDuration = item.inclusiveRenderDuration,301 renderCount = item.renderCount;302 return {303 'Owner > Component': key,304 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration),305 'Instance count': instanceCount,306 'Render count': renderCount307 };308 });309 consoleTable(table);310}311function printWasted(flushHistory) {312 if (!__DEV__) {313 warnInProduction();314 return;315 }316 var stats = getWasted(flushHistory);317 var table = stats.map(function (item) {318 var key = item.key,319 instanceCount = item.instanceCount,320 inclusiveRenderDuration = item.inclusiveRenderDuration,321 renderCount = item.renderCount;322 return {323 'Owner > Component': key,324 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration),325 'Instance count': instanceCount,326 'Render count': renderCount327 };328 });329 consoleTable(table);330}331function printOperations(flushHistory) {332 if (!__DEV__) {333 warnInProduction();334 return;335 }336 var stats = getOperations(flushHistory);337 var table = stats.map(function (stat) {338 return {339 'Owner > Node': stat.key,340 Operation: stat.type,341 Payload: typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload,342 'Flush index': stat.flushIndex,343 'Owner Component ID': stat.ownerID,344 'DOM Component ID': stat.instanceID345 };346 });347 consoleTable(table);348}349var warnedAboutPrintDOM = false;350function printDOM(measurements) {351 warning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.');352 warnedAboutPrintDOM = true;353 return printOperations(measurements);354}355var warnedAboutGetMeasurementsSummaryMap = false;356function getMeasurementsSummaryMap(measurements) {357 warning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.');358 warnedAboutGetMeasurementsSummaryMap = true;359 return getWasted(measurements);360}361function start() {362 if (!__DEV__) {363 warnInProduction();364 return;365 }366 ReactDebugTool.beginProfiling();367}368function stop() {369 if (!__DEV__) {370 warnInProduction();371 return;372 }373 ReactDebugTool.endProfiling();374}375function isRunning() {376 if (!__DEV__) {377 warnInProduction();378 return false;379 }380 return ReactDebugTool.isProfiling();381}382var ReactPerfAnalysis = {383 getLastMeasurements: getLastMeasurements,384 getExclusive: getExclusive,385 getInclusive: getInclusive,386 getWasted: getWasted,387 getOperations: getOperations,388 printExclusive: printExclusive,389 printInclusive: printInclusive,390 printWasted: printWasted,391 printOperations: printOperations,...

Full Screen

Full Screen

711832ReactPerf.js

Source:711832ReactPerf.js Github

copy

Full Screen

...8}9function consoleTable(table){10console.table(table);11}12function warnInProduction(){13if(alreadyWarned){14return;15}16alreadyWarned=true;17if(typeof console!=='undefined'){18console.error(19'ReactPerf is not supported in the production builds of React. '+20'To collect measurements, please use the development build of React instead.');21}22}23function getLastMeasurements(){24if(!__DEV__){25warnInProduction();26return[];27}28return ReactDebugTool.getFlushHistory();29}30function getExclusive(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();31if(!__DEV__){32warnInProduction();33return[];34}35var aggregatedStats={};36var affectedIDs={};37function updateAggregatedStats(treeSnapshot,instanceID,timerType,applyUpdate){var38displayName=treeSnapshot[instanceID].displayName;39var key=displayName;40var stats=aggregatedStats[key];41if(!stats){42affectedIDs[key]={};43stats=aggregatedStats[key]={44key:key,45instanceCount:0,46counts:{},47durations:{},48totalDuration:0};49}50if(!stats.durations[timerType]){51stats.durations[timerType]=0;52}53if(!stats.counts[timerType]){54stats.counts[timerType]=0;55}56affectedIDs[key][instanceID]=true;57applyUpdate(stats);58}59flushHistory.forEach(function(flush){var60measurements=flush.measurements,treeSnapshot=flush.treeSnapshot;61measurements.forEach(function(measurement){var62duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;63updateAggregatedStats(treeSnapshot,instanceID,timerType,function(stats){64stats.totalDuration+=duration;65stats.durations[timerType]+=duration;66stats.counts[timerType]++;67});68});69});70return Object.keys(aggregatedStats).71map(function(key){return babelHelpers.extends({},72aggregatedStats[key],{73instanceCount:Object.keys(affectedIDs[key]).length});}).74sort(function(a,b){return(75b.totalDuration-a.totalDuration);});76}77function getInclusive(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();78if(!__DEV__){79warnInProduction();80return[];81}82var aggregatedStats={};83var affectedIDs={};84function updateAggregatedStats(treeSnapshot,instanceID,applyUpdate){var _treeSnapshot$instanc=85treeSnapshot[instanceID],displayName=_treeSnapshot$instanc.displayName,ownerID=_treeSnapshot$instanc.ownerID;86var owner=treeSnapshot[ownerID];87var key=(owner?owner.displayName+' > ':'')+displayName;88var stats=aggregatedStats[key];89if(!stats){90affectedIDs[key]={};91stats=aggregatedStats[key]={92key:key,93instanceCount:0,94inclusiveRenderDuration:0,95renderCount:0};96}97affectedIDs[key][instanceID]=true;98applyUpdate(stats);99}100var isCompositeByID={};101flushHistory.forEach(function(flush){var102measurements=flush.measurements;103measurements.forEach(function(measurement){var104instanceID=measurement.instanceID,timerType=measurement.timerType;105if(timerType!=='render'){106return;107}108isCompositeByID[instanceID]=true;109});110});111flushHistory.forEach(function(flush){var112measurements=flush.measurements,treeSnapshot=flush.treeSnapshot;113measurements.forEach(function(measurement){var114duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;115if(timerType!=='render'){116return;117}118updateAggregatedStats(treeSnapshot,instanceID,function(stats){119stats.renderCount++;120});121var nextParentID=instanceID;122while(nextParentID){123if(isCompositeByID[nextParentID]){124updateAggregatedStats(treeSnapshot,nextParentID,function(stats){125stats.inclusiveRenderDuration+=duration;126});127}128nextParentID=treeSnapshot[nextParentID].parentID;129}130});131});132return Object.keys(aggregatedStats).133map(function(key){return babelHelpers.extends({},134aggregatedStats[key],{135instanceCount:Object.keys(affectedIDs[key]).length});}).136sort(function(a,b){return(137b.inclusiveRenderDuration-a.inclusiveRenderDuration);});138}139function getWasted(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();140if(!__DEV__){141warnInProduction();142return[];143}144var aggregatedStats={};145var affectedIDs={};146function updateAggregatedStats(treeSnapshot,instanceID,applyUpdate){var _treeSnapshot$instanc2=147treeSnapshot[instanceID],displayName=_treeSnapshot$instanc2.displayName,ownerID=_treeSnapshot$instanc2.ownerID;148var owner=treeSnapshot[ownerID];149var key=(owner?owner.displayName+' > ':'')+displayName;150var stats=aggregatedStats[key];151if(!stats){152affectedIDs[key]={};153stats=aggregatedStats[key]={154key:key,155instanceCount:0,156inclusiveRenderDuration:0,157renderCount:0};158}159affectedIDs[key][instanceID]=true;160applyUpdate(stats);161}162flushHistory.forEach(function(flush){var163measurements=flush.measurements,treeSnapshot=flush.treeSnapshot,operations=flush.operations;164var isDefinitelyNotWastedByID={};165operations.forEach(function(operation){var166instanceID=operation.instanceID;167var nextParentID=instanceID;168while(nextParentID){169isDefinitelyNotWastedByID[nextParentID]=true;170nextParentID=treeSnapshot[nextParentID].parentID;171}172});173var renderedCompositeIDs={};174measurements.forEach(function(measurement){var175instanceID=measurement.instanceID,timerType=measurement.timerType;176if(timerType!=='render'){177return;178}179renderedCompositeIDs[instanceID]=true;180});181measurements.forEach(function(measurement){var182duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;183if(timerType!=='render'){184return;185}var186updateCount=treeSnapshot[instanceID].updateCount;187if(isDefinitelyNotWastedByID[instanceID]||updateCount===0){188return;189}190updateAggregatedStats(treeSnapshot,instanceID,function(stats){191stats.renderCount++;192});193var nextParentID=instanceID;194while(nextParentID){195var isWasted=196renderedCompositeIDs[nextParentID]&&197!isDefinitelyNotWastedByID[nextParentID];198if(isWasted){199updateAggregatedStats(treeSnapshot,nextParentID,function(stats){200stats.inclusiveRenderDuration+=duration;201});202}203nextParentID=treeSnapshot[nextParentID].parentID;204}205});206});207return Object.keys(aggregatedStats).208map(function(key){return babelHelpers.extends({},209aggregatedStats[key],{210instanceCount:Object.keys(affectedIDs[key]).length});}).211sort(function(a,b){return(212b.inclusiveRenderDuration-a.inclusiveRenderDuration);});213}214function getOperations(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();215if(!__DEV__){216warnInProduction();217return[];218}219var stats=[];220flushHistory.forEach(function(flush,flushIndex){var221operations=flush.operations,treeSnapshot=flush.treeSnapshot;222operations.forEach(function(operation){var223instanceID=operation.instanceID,type=operation.type,payload=operation.payload;var _treeSnapshot$instanc3=224treeSnapshot[instanceID],displayName=_treeSnapshot$instanc3.displayName,ownerID=_treeSnapshot$instanc3.ownerID;225var owner=treeSnapshot[ownerID];226var key=(owner?owner.displayName+' > ':'')+displayName;227stats.push({228flushIndex:flushIndex,229instanceID:instanceID,230key:key,231type:type,232ownerID:ownerID,233payload:payload});234});235});236return stats;237}238function printExclusive(flushHistory){239if(!__DEV__){240warnInProduction();241return;242}243var stats=getExclusive(flushHistory);244var table=stats.map(function(item){var245key=item.key,instanceCount=item.instanceCount,totalDuration=item.totalDuration;246var renderCount=item.counts.render||0;247var renderDuration=item.durations.render||0;248return{249'Component':key,250'Total time (ms)':roundFloat(totalDuration),251'Instance count':instanceCount,252'Total render time (ms)':roundFloat(renderDuration),253'Average render time (ms)':renderCount?254roundFloat(renderDuration/renderCount):255undefined,256'Render count':renderCount,257'Total lifecycle time (ms)':roundFloat(totalDuration-renderDuration)};258});259consoleTable(table);260}261function printInclusive(flushHistory){262if(!__DEV__){263warnInProduction();264return;265}266var stats=getInclusive(flushHistory);267var table=stats.map(function(item){var268key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;269return{270'Owner > Component':key,271'Inclusive render time (ms)':roundFloat(inclusiveRenderDuration),272'Instance count':instanceCount,273'Render count':renderCount};274});275consoleTable(table);276}277function printWasted(flushHistory){278if(!__DEV__){279warnInProduction();280return;281}282var stats=getWasted(flushHistory);283var table=stats.map(function(item){var284key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;285return{286'Owner > Component':key,287'Inclusive wasted time (ms)':roundFloat(inclusiveRenderDuration),288'Instance count':instanceCount,289'Render count':renderCount};290});291consoleTable(table);292}293function printOperations(flushHistory){294if(!__DEV__){295warnInProduction();296return;297}298var stats=getOperations(flushHistory);299var table=stats.map(function(stat){return{300'Owner > Node':stat.key,301'Operation':stat.type,302'Payload':typeof stat.payload==='object'?303JSON.stringify(stat.payload):304stat.payload,305'Flush index':stat.flushIndex,306'Owner Component ID':stat.ownerID,307'DOM Component ID':stat.instanceID};});308consoleTable(table);309}310var warnedAboutPrintDOM=false;311function printDOM(measurements){312warning(313warnedAboutPrintDOM,314'`ReactPerf.printDOM(...)` is deprecated. Use '+315'`ReactPerf.printOperations(...)` instead.');316warnedAboutPrintDOM=true;317return printOperations(measurements);318}319var warnedAboutGetMeasurementsSummaryMap=false;320function getMeasurementsSummaryMap(measurements){321warning(322warnedAboutGetMeasurementsSummaryMap,323'`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use '+324'`ReactPerf.getWasted(...)` instead.');325warnedAboutGetMeasurementsSummaryMap=true;326return getWasted(measurements);327}328function start(){329if(!__DEV__){330warnInProduction();331return;332}333ReactDebugTool.beginProfiling();334}335function stop(){336if(!__DEV__){337warnInProduction();338return;339}340ReactDebugTool.endProfiling();341}342function isRunning(){343if(!__DEV__){344warnInProduction();345return false;346}347return ReactDebugTool.isProfiling();348}349var ReactPerfAnalysis={350getLastMeasurements:getLastMeasurements,351getExclusive:getExclusive,352getInclusive:getInclusive,353getWasted:getWasted,354getOperations:getOperations,355printExclusive:printExclusive,356printInclusive:printInclusive,357printWasted:printWasted,358printOperations:printOperations,...

Full Screen

Full Screen

6558d0ReactPerf.js

Source:6558d0ReactPerf.js Github

copy

Full Screen

...8}9function consoleTable(table){10console.table(table);11}12function warnInProduction(){13if(alreadyWarned){14return;15}16alreadyWarned=true;17if(typeof console!=='undefined'){18console.error(19'ReactPerf is not supported in the production builds of React. '+20'To collect measurements, please use the development build of React instead.');21}22}23function getLastMeasurements(){24if(!__DEV__){25warnInProduction();26return[];27}28return ReactDebugTool.getFlushHistory();29}30function getExclusive(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();31if(!__DEV__){32warnInProduction();33return[];34}35var aggregatedStats={};36var affectedIDs={};37function updateAggregatedStats(treeSnapshot,instanceID,timerType,applyUpdate){var38displayName=treeSnapshot[instanceID].displayName;39var key=displayName;40var stats=aggregatedStats[key];41if(!stats){42affectedIDs[key]={};43stats=aggregatedStats[key]={44key:key,45instanceCount:0,46counts:{},47durations:{},48totalDuration:0};49}50if(!stats.durations[timerType]){51stats.durations[timerType]=0;52}53if(!stats.counts[timerType]){54stats.counts[timerType]=0;55}56affectedIDs[key][instanceID]=true;57applyUpdate(stats);58}59flushHistory.forEach(function(flush){var60measurements=flush.measurements,treeSnapshot=flush.treeSnapshot;61measurements.forEach(function(measurement){var62duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;63updateAggregatedStats(treeSnapshot,instanceID,timerType,function(stats){64stats.totalDuration+=duration;65stats.durations[timerType]+=duration;66stats.counts[timerType]++;67});68});69});70return Object.keys(aggregatedStats).71map(function(key){return babelHelpers.extends({},72aggregatedStats[key],{73instanceCount:Object.keys(affectedIDs[key]).length});}).74sort(function(a,b){return(75b.totalDuration-a.totalDuration);});76}77function getInclusive(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();78if(!__DEV__){79warnInProduction();80return[];81}82var aggregatedStats={};83var affectedIDs={};84function updateAggregatedStats(treeSnapshot,instanceID,applyUpdate){var _treeSnapshot$instanc=85treeSnapshot[instanceID],displayName=_treeSnapshot$instanc.displayName,ownerID=_treeSnapshot$instanc.ownerID;86var owner=treeSnapshot[ownerID];87var key=(owner?owner.displayName+' > ':'')+displayName;88var stats=aggregatedStats[key];89if(!stats){90affectedIDs[key]={};91stats=aggregatedStats[key]={92key:key,93instanceCount:0,94inclusiveRenderDuration:0,95renderCount:0};96}97affectedIDs[key][instanceID]=true;98applyUpdate(stats);99}100var isCompositeByID={};101flushHistory.forEach(function(flush){var102measurements=flush.measurements;103measurements.forEach(function(measurement){var104instanceID=measurement.instanceID,timerType=measurement.timerType;105if(timerType!=='render'){106return;107}108isCompositeByID[instanceID]=true;109});110});111flushHistory.forEach(function(flush){var112measurements=flush.measurements,treeSnapshot=flush.treeSnapshot;113measurements.forEach(function(measurement){var114duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;115if(timerType!=='render'){116return;117}118updateAggregatedStats(treeSnapshot,instanceID,function(stats){119stats.renderCount++;120});121var nextParentID=instanceID;122while(nextParentID){123if(isCompositeByID[nextParentID]){124updateAggregatedStats(treeSnapshot,nextParentID,function(stats){125stats.inclusiveRenderDuration+=duration;126});127}128nextParentID=treeSnapshot[nextParentID].parentID;129}130});131});132return Object.keys(aggregatedStats).133map(function(key){return babelHelpers.extends({},134aggregatedStats[key],{135instanceCount:Object.keys(affectedIDs[key]).length});}).136sort(function(a,b){return(137b.inclusiveRenderDuration-a.inclusiveRenderDuration);});138}139function getWasted(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();140if(!__DEV__){141warnInProduction();142return[];143}144var aggregatedStats={};145var affectedIDs={};146function updateAggregatedStats(treeSnapshot,instanceID,applyUpdate){var _treeSnapshot$instanc2=147treeSnapshot[instanceID],displayName=_treeSnapshot$instanc2.displayName,ownerID=_treeSnapshot$instanc2.ownerID;148var owner=treeSnapshot[ownerID];149var key=(owner?owner.displayName+' > ':'')+displayName;150var stats=aggregatedStats[key];151if(!stats){152affectedIDs[key]={};153stats=aggregatedStats[key]={154key:key,155instanceCount:0,156inclusiveRenderDuration:0,157renderCount:0};158}159affectedIDs[key][instanceID]=true;160applyUpdate(stats);161}162flushHistory.forEach(function(flush){var163measurements=flush.measurements,treeSnapshot=flush.treeSnapshot,operations=flush.operations;164var isDefinitelyNotWastedByID={};165operations.forEach(function(operation){var166instanceID=operation.instanceID;167var nextParentID=instanceID;168while(nextParentID){169isDefinitelyNotWastedByID[nextParentID]=true;170nextParentID=treeSnapshot[nextParentID].parentID;171}172});173var renderedCompositeIDs={};174measurements.forEach(function(measurement){var175instanceID=measurement.instanceID,timerType=measurement.timerType;176if(timerType!=='render'){177return;178}179renderedCompositeIDs[instanceID]=true;180});181measurements.forEach(function(measurement){var182duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;183if(timerType!=='render'){184return;185}var186updateCount=treeSnapshot[instanceID].updateCount;187if(isDefinitelyNotWastedByID[instanceID]||updateCount===0){188return;189}190updateAggregatedStats(treeSnapshot,instanceID,function(stats){191stats.renderCount++;192});193var nextParentID=instanceID;194while(nextParentID){195var isWasted=196renderedCompositeIDs[nextParentID]&&197!isDefinitelyNotWastedByID[nextParentID];198if(isWasted){199updateAggregatedStats(treeSnapshot,nextParentID,function(stats){200stats.inclusiveRenderDuration+=duration;201});202}203nextParentID=treeSnapshot[nextParentID].parentID;204}205});206});207return Object.keys(aggregatedStats).208map(function(key){return babelHelpers.extends({},209aggregatedStats[key],{210instanceCount:Object.keys(affectedIDs[key]).length});}).211sort(function(a,b){return(212b.inclusiveRenderDuration-a.inclusiveRenderDuration);});213}214function getOperations(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();215if(!__DEV__){216warnInProduction();217return[];218}219var stats=[];220flushHistory.forEach(function(flush,flushIndex){var221operations=flush.operations,treeSnapshot=flush.treeSnapshot;222operations.forEach(function(operation){var223instanceID=operation.instanceID,type=operation.type,payload=operation.payload;var _treeSnapshot$instanc3=224treeSnapshot[instanceID],displayName=_treeSnapshot$instanc3.displayName,ownerID=_treeSnapshot$instanc3.ownerID;225var owner=treeSnapshot[ownerID];226var key=(owner?owner.displayName+' > ':'')+displayName;227stats.push({228flushIndex:flushIndex,229instanceID:instanceID,230key:key,231type:type,232ownerID:ownerID,233payload:payload});234});235});236return stats;237}238function printExclusive(flushHistory){239if(!__DEV__){240warnInProduction();241return;242}243var stats=getExclusive(flushHistory);244var table=stats.map(function(item){var245key=item.key,instanceCount=item.instanceCount,totalDuration=item.totalDuration;246var renderCount=item.counts.render||0;247var renderDuration=item.durations.render||0;248return{249'Component':key,250'Total time (ms)':roundFloat(totalDuration),251'Instance count':instanceCount,252'Total render time (ms)':roundFloat(renderDuration),253'Average render time (ms)':renderCount?254roundFloat(renderDuration/renderCount):255undefined,256'Render count':renderCount,257'Total lifecycle time (ms)':roundFloat(totalDuration-renderDuration)};258});259consoleTable(table);260}261function printInclusive(flushHistory){262if(!__DEV__){263warnInProduction();264return;265}266var stats=getInclusive(flushHistory);267var table=stats.map(function(item){var268key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;269return{270'Owner > Component':key,271'Inclusive render time (ms)':roundFloat(inclusiveRenderDuration),272'Instance count':instanceCount,273'Render count':renderCount};274});275consoleTable(table);276}277function printWasted(flushHistory){278if(!__DEV__){279warnInProduction();280return;281}282var stats=getWasted(flushHistory);283var table=stats.map(function(item){var284key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;285return{286'Owner > Component':key,287'Inclusive wasted time (ms)':roundFloat(inclusiveRenderDuration),288'Instance count':instanceCount,289'Render count':renderCount};290});291consoleTable(table);292}293function printOperations(flushHistory){294if(!__DEV__){295warnInProduction();296return;297}298var stats=getOperations(flushHistory);299var table=stats.map(function(stat){return{300'Owner > Node':stat.key,301'Operation':stat.type,302'Payload':typeof stat.payload==='object'?303JSON.stringify(stat.payload):304stat.payload,305'Flush index':stat.flushIndex,306'Owner Component ID':stat.ownerID,307'DOM Component ID':stat.instanceID};});308consoleTable(table);309}310var warnedAboutPrintDOM=false;311function printDOM(measurements){312warning(313warnedAboutPrintDOM,314'`ReactPerf.printDOM(...)` is deprecated. Use '+315'`ReactPerf.printOperations(...)` instead.');316warnedAboutPrintDOM=true;317return printOperations(measurements);318}319var warnedAboutGetMeasurementsSummaryMap=false;320function getMeasurementsSummaryMap(measurements){321warning(322warnedAboutGetMeasurementsSummaryMap,323'`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use '+324'`ReactPerf.getWasted(...)` instead.');325warnedAboutGetMeasurementsSummaryMap=true;326return getWasted(measurements);327}328function start(){329if(!__DEV__){330warnInProduction();331return;332}333ReactDebugTool.beginProfiling();334}335function stop(){336if(!__DEV__){337warnInProduction();338return;339}340ReactDebugTool.endProfiling();341}342function isRunning(){343if(!__DEV__){344warnInProduction();345return false;346}347return ReactDebugTool.isProfiling();348}349var ReactPerfAnalysis={350getLastMeasurements:getLastMeasurements,351getExclusive:getExclusive,352getInclusive:getInclusive,353getWasted:getWasted,354getOperations:getOperations,355printExclusive:printExclusive,356printInclusive:printInclusive,357printWasted:printWasted,358printOperations:printOperations,...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1I have tried to use the following code to import the file:2const { warnInProduction, logInProduction, debugInProduction, infoInProduction, errorInProduction, traceInProduction } = require('playwright/lib/utils/logger');3I have also tried to use the following code to import the file:4const { warnInProduction, logInProduction, debugInProduction, infoInProduction, errorInProduction, traceInProduction } = require('playwright/lib/utils/logger.js');5I have also tried to use the following code to import the file:6const { warnInProduction, logInProduction, debugInProduction, infoInProduction, errorInProduction, traceInProduction } = require('playwright/lib/utils/logger/index.js');7I have also tried to import the file using the following code:8const { warnInProduction, logInProduction, debugInProduction, infoInProduction, errorInProduction, traceInProduction } = require('playwright/lib/utils/logger/index');

Full Screen

Using AI Code Generation

copy

Full Screen

1const { warnInProduction } = require('@playwright/test/lib/utils/logger');2const { errorInProduction } = require('@playwright/test/lib/utils/logger');3const { debugInProduction } = require('@playwright/test/lib/utils/logger');4const { infoInProduction } = require('@playwright/test/lib/utils/logger');5const { logInProduction } = require('@playwright/test/lib/utils/logger');6const { printInProduction } = require('@playwright/test/lib/utils/logger');7const { clearInProduction } = require('@playwright/test/lib/utils/logger');

Full Screen

Using AI Code Generation

copy

Full Screen

1const { InternalError } = require('playwright/lib/internal/errors');2InternalError.warnInProduction('test', 'test');3InternalError.warnInProduction('test', 'test', 'test');4InternalError.warnInProduction('test', 'test', 'test', 'test');5InternalError.warnInProduction('test', 'test', 'test', 'test', 'test');6InternalError.warnInProduction('test', 'test', 'test', 'test', 'test', 'test');7InternalError.warnInProduction('test', 'test', 'test', 'test', 'test', 'test', 'test');8InternalError.warnInProduction('test', 'test', 'test', 'test', 'test', 'test', 'test', 'test');9const { TimeoutError } = require('playwright/lib/internal/errors');10TimeoutError.warnInProduction('test', 'test');11TimeoutError.warnInProduction('test', 'test', 'test');12TimeoutError.warnInProduction('test', 'test', 'test', 'test');13TimeoutError.warnInProduction('test', 'test', 'test', 'test', 'test');14TimeoutError.warnInProduction('test', 'test', 'test', 'test', 'test', 'test');15TimeoutError.warnInProduction('test', 'test', 'test', 'test', 'test', 'test', 'test');16TimeoutError.warnInProduction('test', 'test', 'test', 'test', 'test', 'test', 'test', 'test');17const { Error } = require('playwright/lib/internal/errors');18Error.warnInProduction('test', 'test');19Error.warnInProduction('test', 'test', 'test');20Error.warnInProduction('test', 'test', 'test', 'test');21Error.warnInProduction('test', 'test', 'test', 'test', 'test');22Error.warnInProduction('test', 'test', 'test', 'test', 'test', 'test');23Error.warnInProduction('test', 'test', 'test', 'test', 'test', 'test', 'test');24Error.warnInProduction('test', 'test', 'test', 'test', 'test', 'test', 'test', 'test');

Full Screen

Using AI Code Generation

copy

Full Screen

1const {InternalLogger} = require('@playwright/test/lib/utils/logger');2InternalLogger.warnInProduction('This is a warning');3const {InternalLogger} = require('@playwright/test/lib/utils/logger');4InternalLogger.setLogLevel('error');5InternalLogger.warnInProduction('This is a warning');6const {InternalLogger} = require('@playwright/test/lib/utils/logger');7InternalLogger.setLogLevel('error');8InternalLogger.warnInProduction('This is a warning');9const {InternalLogger} = require('@playwright/test/lib/utils/logger');10InternalLogger.setLogLevel('error');11InternalLogger.warnInProduction('This is a warning');12const {InternalLogger} = require('@playwright/test/lib/utils/logger');13InternalLogger.setLogLevel('error');14InternalLogger.warnInProduction('This is a warning');15const {InternalLogger} = require('@playwright/test/lib/utils/logger');16InternalLogger.setLogLevel('error');17InternalLogger.warnInProduction('This is a warning');18const {InternalLogger} = require('@playwright/test/lib/utils/logger');19InternalLogger.setLogLevel('error');20InternalLogger.warnInProduction('This is a warning');21const {InternalLogger} = require('@playwright/test/lib/utils/logger');22InternalLogger.setLogLevel('error');23InternalLogger.warnInProduction('This is a warning');24const {InternalLogger} = require('@playwright/test/lib/utils/logger');25InternalLogger.setLogLevel('error');26InternalLogger.warnInProduction('This is a warning');27const {InternalLogger} = require('@playwright/test/lib/utils/logger');28InternalLogger.setLogLevel('error');29InternalLogger.warnInProduction('This is a warning');30const {InternalLogger} = require('@playwright/test/lib/utils/logger');31InternalLogger.setLogLevel('error');32InternalLogger.warnInProduction('This is a warning');

Full Screen

Using AI Code Generation

copy

Full Screen

1const { warnInProduction } = require('playwright/lib/utils/utils');2warnInProduction('test warning');3const { test, expect } = require('@playwright/test');4test('warnInProduction', async ({ page }) => {5 const title = page.locator('.navbar__inner .navbar__title');6 await expect(title).toHaveText('Playwright');7});8const { setUnderTest } = require('playwright/lib/utils/utils');9setUnderTest();10const { test, expect } = require('@playwright/test');11test('setUnderTest', async ({ page }) => {12 const title = page.locator('.navbar__inner .navbar__title');13 await expect(title).toHaveText('Playwright');14});15const { setLogPrefix } = require('playwright/lib/utils/utils');16setLogPrefix('test');17const { test, expect } = require('@playwright/test');18test('setLogPrefix', async ({ page }) => {19 const title = page.locator('.navbar__inner .navbar__title');20 await expect(title).toHaveText('Playwright');21});22const {

Full Screen

Using AI Code Generation

copy

Full Screen

1const { Playwright } = require('@playwright/test');2const { warnInProduction } = Playwright.InternalLogger;3warnInProduction('test');4const { Playwright } = require('@playwright/test');5const { warn } = Playwright.InternalLogger;6warn('test');7const { Playwright } = require('@playwright/test');8const { warn } = Playwright.InternalLogger;9warn('test');

Full Screen

Using AI Code Generation

copy

Full Screen

1const { warnInProduction } = require('playwright-core/lib/utils/debug');2warnInProduction('This is a warning message');3console.log('This is a normal message');4const { debug } = require('playwright-core/lib/utils/debug');5debug('This is a debug message');6console.log('This is a normal message');7const { isDebugMode } = require('playwright-core/lib/utils/debug');8console.log(isDebugMode());9console.log('This is a normal message');10const { debugAssert } = require('playwright-core/lib/utils/debug');11debugAssert(true, 'This is a debug message');12debugAssert(false, 'This is a debug message');13console.log('This is a normal message');

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Internal automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful