Commit Graph

37 Commits

Author SHA1 Message Date
Ben Alpert 418ba27485 Kill global queue in ReactMultiChild
As we move away from using HTML for updates, this becomes less useful.
2015-11-25 12:59:02 -08:00
Ben Alpert 663c4b7d2e Stop relying on hierarchical IDs in ReactDefaultPerf 2015-11-04 11:39:43 -08:00
Ben Alpert 5d94d7d43c Perf: Static children count for wasted time 2015-11-04 11:39:43 -08:00
Ben Alpert 4ba0e95a96 Kill ReactMount.getNode/getID/purgeID with fire 2015-11-04 11:39:43 -08:00
Ben Alpert 796f8c353c put/deleteListener take an instance, not an ID
This removes SimpleEventPlugin's dependency on ReactMount.getID.
2015-11-04 11:39:43 -08:00
Ben Alpert ce528457a4 ReactDOMComponentTree
New module! With this, we have a new module that uses the component tree to store DOM nodes. Most of the logic in this file relates to markup adoption -- if we were to drop that (along with server rendering) this file could just be a `return inst._nativeNode;`.

This works with useCreateElement only because we need to reference each node as it's created.

Events is now the only thing using ReactMount.getNode -- I'll introduce pointers back from the DOM nodes (and a `ReactDOMComponentTree.getInstanceFromNode`) and make that work.
2015-11-03 17:03:40 -08:00
Ants 59db07c4f9 Fix for the issue #5189
Fix for lint issues

Added the test cases for the issue 5189

Removing empty space

Removing the Eventplugin instrumentation code

Removing unwanted white space
2015-10-27 16:33:22 +05:30
Ben Alpert ef95128ae2 Remove unnecessary indirection in events 2015-10-15 20:13:14 -07:00
Ben Alpert 60491d89f8 Use returned native node for composite type-change
With this change, all unmounted components should be properly purged from ReactMount's cache.
2015-10-07 12:57:34 -07:00
Ben Alpert 7938650ca9 Make new perf unit test pass 2015-09-27 14:26:26 -07:00
JaeHunRo 6244a985c4 updates printWasted 2015-09-23 01:46:31 +01:00
Paul O’Shannessy a28325e412 Enable linting in src/tests, cleanup 2015-07-17 13:35:17 -07:00
Ben Alpert 98671fda1a Fix up Perf a bit better for 0.13
_mountImageIntoNode moved into ReactMount and wasn't being counted where it was supposed to be. In addition, all DOM elements are now wrapped in a composite wrapper but for the perf tools we want to skip over those or else we'll double-count (at least with the current accounting -- and that's effectively what we did before so this brings us back up to parity).

Fixes #3407.

Test Plan:
Used the jsbin from #3407 and saw similar output from this branch and 0.12:

![image](https://cloud.githubusercontent.com/assets/6820/6649816/4d7202e0-c9b2-11e4-9364-e1b50c96b55b.png)
2015-03-13 18:51:53 -07:00
Toru Kobayashi 29506cec54 Fix Perf displayName with ES6 classes 2015-03-10 09:45:40 +09:00
Rick Beerendonk 3e0750a4ad Update copyright headers for 2015 2015-01-31 20:18:25 +01:00
Isaac Salier-Hellendag de54d84051 Repair ReactDefaultPerf
Update ReactDefaultPerf to properly record component names.
2015-01-21 10:52:43 -06:00
Paul O’Shannessy df64a67b7f codemod "use strict" to 'use strict' for better linting 2015-01-13 15:26:32 -08:00
Sebastian Markbage 974a4c84ce Move mountComponentIntoNode and setProps out of ReactComponent
This is part of moving more logic out of the base classes.

setProps, replaceProps etc. are not accessible from anything other than
ReactClass so we can safely move it to ReactCompositeComponent.

mountComponentIntoNode is tightly coupled to ReactMount. It's part of the
outer abstraction, the mount point, not the individual component.
2014-11-17 12:54:21 -08:00
Sebastian Markbage dac59d1032 Drop the _owner and _lifeCycle field on internal instances
The _owner field is unnecessary since it's reachable from _currentElement.

The _lifeCycle field is unnecessary because an internal component should
not even need to exist at all if it's unmounted. It should be dereferenced
internally, and never exposed externally.

The only case where it's important is for batching updates where we
currently avoid calling performUpdateIfNecessary if it's mounted. However,
this function is already only executed "if necessary" so we just make sure
that it's not necessary after unmount by resetting all the pending fields.
2014-11-16 21:05:12 -08:00
Paul O’Shannessy dcf415c2b9 BSD + PATENTS 2014-10-10 13:34:07 -07:00
Pablo Lacerda de Miranda 792b84c94b fixes ReactDefaultPerf.getMeasurementsSummaryMap format style 2014-09-23 18:50:18 -07:00
Pablo Lacerda de Miranda 486c69b6de extracts getMeasurementsSummaryMap from ReactDefaultPerf.printWasted 2014-09-19 16:03:41 -07:00
Pete Hunt c93583c84f Remove bad perf metric
Remove a bad perf metric. Will investigate later.
2014-06-14 20:40:09 -07:00
Josh Duck 29f3f74c52 Make perf show all exclusive time, not just render time.
Currently require('ReactDefaultPerf').printExclusive() shows render
time and aggregate componentMount time.

This makes it show exclusive mount time by tracking a stack.
2014-05-12 16:39:09 -07:00
Paul O’Shannessy 8a47813baa Update copyrights for 2014.
grep -rl 'Copyright 2013 Facebook' static_upstream | xargs perl -pi -w -e s/Copyright 2013 Facebook/Copyright 2013-2014 Facebook/g;'

Not going to check in a script to do this since it will just change every year.
Closes #1006
2014-02-18 17:06:43 -08:00
Josh Duck acbba1ae67 Updates to perf
ReactDefaultPerf:

* Show times as float instead of string. This means they're sortable.
* Add count columns to all types and average to exclusive time.
* Include mountComponent where updateComponent time is measured.
* Increment count on _renderValidatedComponent instead of update.

ReactDefaultPerfAnalysis:

* Return counts with all summaries.
2014-02-13 18:21:17 -08:00
Ben Alpert 55be7a71c5 Measure root component render in ReactDefaultPerf
Fixes #1074.
2014-02-13 00:59:02 -08:00
Pete Hunt 3895353326 [perf] Refactor ReactDefaultPerf and add DOM operation tracing
Split the summary functions into a separate module, and add the ability to view a lot of all DOM operations. Removed DOM timing since it was incorrect. Will potentially replace with a
dropped frame counter in the future.
2014-02-12 16:35:24 -08:00
Pete Hunt 75b58d2ad2 [perf] Wasted time metrics
This logs DOM ops for a given reconcile. Based on which components rendered and which ones *actually* caused DOM updates we can find
opportunities to add shouldComponentUpdate() methods.
2014-02-12 16:34:37 -08:00
Pete Hunt 94ef6c51fb [perf] Better inclusive measurements
Inclusive time is still not that helpful w/o looking at what actually resulted in DOM ops. However, this is better than what we have today and will serve as a building block.

I blacklisted everything but composite components -- hopefully that's OK.
2014-02-12 16:34:24 -08:00
Pete Hunt 439bca78ed [perf] New ReactDefaultPerf
Simplified version of https://github.com/facebook/react/pull/962. More goodies coming soon since the inclusive time isn't very helpful right now.
2014-02-12 12:30:02 -08:00
Pete Hunt a6749a686f [perf] Change how ReactDefaultPerf is injected
ReactDefaultPerf should inject itself when require()'d. This continues to support the ?react_perf use case for logging on initial page load.
2014-02-12 12:29:00 -08:00
Andreas Svensson 989eb2e7d9 Fix references to the old ReactID syntax 2014-01-26 21:26:58 +01:00
cpojer decb49a202 Use rest parameters whenever it makes sense. 2013-12-11 10:30:10 -08:00
Paul O'Shannessy f43449d333 ReactNativeComponent -> ReactDOMComponent
In an effort to break the DOMy parts of React away from the non-DOMy parts, I'm renaming this.
2013-10-01 16:31:32 -07:00
Pete Hunt c41e86c990 Make ReactDefaultPerf work server-side
We were reading from window which was throwing when ReactDefaultPerf was injected.
2013-08-30 13:20:53 -07:00
Danny Ben-David fce57abeca Benchmarking tool for React application performance
ReactAppPerf wraps core methods and logs info from them; there's no real
UI at this point
2013-08-23 14:05:11 -07:00