From 756bd975b1a36c00acc3cacecd96205a92f4501b Mon Sep 17 00:00:00 2001 From: Pete Hunt Date: Wed, 12 Feb 2014 11:35:20 -0800 Subject: [PATCH] [perf] Measure exclusive render time Piece of https://github.com/facebook/react/pull/962 --- src/core/ReactCompositeComponent.js | 40 ++++++++++++++++------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/core/ReactCompositeComponent.js b/src/core/ReactCompositeComponent.js index b8598e9b00..4f6f62a6a8 100644 --- a/src/core/ReactCompositeComponent.js +++ b/src/core/ReactCompositeComponent.js @@ -1267,25 +1267,29 @@ var ReactCompositeComponentMixin = { /** * @private */ - _renderValidatedComponent: function() { - var renderedComponent; - var previousContext = ReactContext.current; - ReactContext.current = this._processChildContext(this._currentContext); - ReactCurrentOwner.current = this; - try { - renderedComponent = this.render(); - } finally { - ReactContext.current = previousContext; - ReactCurrentOwner.current = null; + _renderValidatedComponent: ReactPerf.measure( + 'ReactCompositeComponent', + '_renderValidatedComponent', + function() { + var renderedComponent; + var previousContext = ReactContext.current; + ReactContext.current = this._processChildContext(this._currentContext); + ReactCurrentOwner.current = this; + try { + renderedComponent = this.render(); + } finally { + ReactContext.current = previousContext; + ReactCurrentOwner.current = null; + } + invariant( + ReactComponent.isValidComponent(renderedComponent), + '%s.render(): A valid ReactComponent must be returned. You may have ' + + 'returned null, undefined, an array, or some other invalid object.', + this.constructor.displayName || 'ReactCompositeComponent' + ); + return renderedComponent; } - invariant( - ReactComponent.isValidComponent(renderedComponent), - '%s.render(): A valid ReactComponent must be returned. You may have ' + - 'returned null, undefined, an array, or some other invalid object.', - this.constructor.displayName || 'ReactCompositeComponent' - ); - return renderedComponent; - }, + ), /** * @private