@samitouri / QOS-React / commits / ea55d66760

Rename ReactPerf methods to match the upcoming ReactPerf revamp

Dan Abramov committed Mar 17, 2016 at 20:03 UTC ea55d667602d083cacef77074228c9150deac0fa
3 files changed +72 -5
docs/docs/10.9-perf.md
+5 -1
@@ -41,11 +41,15 @@ Prints the overall time taken. If no argument's passed, defaults to all the meas
41
42 ![](/react/img/docs/perf-wasted.png)
43
44 -### `Perf.printDOM(measurements)`
44 +### `Perf.printOperations(measurements)`
45 Prints the underlying DOM manipulations, e.g. "set innerHTML" and "remove".
46
47 ![](/react/img/docs/perf-dom.png)
48
49 +### `Perf.printDOM(measurements)`
50 +
51 +This method has been renamed to `printOperations()` which is described in the previous paragraph. Currently `printDOM()` still exists as an alias but it prints a deprecation warning and will eventually be removed.
52 +
53 ## Advanced API
54
55 The above print methods use `Perf.getLastMeasurements()` to pretty-print the result.
src/test/ReactDefaultPerf.js
+25 -1
@@ -18,6 +18,7 @@ var ReactMount = require('ReactMount');
18 var ReactPerf = require('ReactPerf');
19
20 var performanceNow = require('performanceNow');
21 +var warning = require('warning');
22
23 function roundFloat(val) {
24 return Math.floor(val * 100) / 100;
@@ -62,6 +63,9 @@ function unwrapLegacyMeasurements(measurements) {
63 return measurements && measurements.__unstable_this_format_will_change || measurements;
64 }
65
66 +var warnedAboutPrintDOM = false;
67 +var warnedAboutGetMeasurementsSummaryMap = false;
68 +
69 var ReactDefaultPerf = {
70 _allMeasurements: [], // last item in the list is the current one
71 _mountStack: [0],
@@ -120,6 +124,16 @@ var ReactDefaultPerf = {
124 },
125
126 getMeasurementsSummaryMap: function(measurements) {
127 + warning(
128 + warnedAboutGetMeasurementsSummaryMap,
129 + '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' +
130 + '`ReactPerf.getWasted(...)` instead.'
131 + );
132 + warnedAboutGetMeasurementsSummaryMap = true;
133 + return ReactDefaultPerf.getWasted(measurements);
134 + },
135 +
136 + getWasted: function(measurements) {
137 measurements = unwrapLegacyMeasurements(measurements);
138 var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(
139 measurements,
@@ -136,7 +150,7 @@ var ReactDefaultPerf = {
150
151 printWasted: function(measurements) {
152 measurements = unwrapLegacyMeasurements(measurements || ReactDefaultPerf._allMeasurements);
139 - console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements));
153 + console.table(ReactDefaultPerf.getWasted(measurements));
154 console.log(
155 'Total time:',
156 ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'
@@ -144,6 +158,16 @@ var ReactDefaultPerf = {
158 },
159
160 printDOM: function(measurements) {
161 + warning(
162 + warnedAboutPrintDOM,
163 + '`ReactPerf.printDOM(...)` is deprecated. Use ' +
164 + '`ReactPerf.printOperations(...)` instead.'
165 + );
166 + warnedAboutPrintDOM = true;
167 + return ReactDefaultPerf.printOperations(measurements);
168 + },
169 +
170 + printOperations: function(measurements) {
171 measurements = unwrapLegacyMeasurements(measurements || ReactDefaultPerf._allMeasurements);
172 var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements);
173 console.table(summary.map(function(item) {
src/test/__tests__/ReactDefaultPerf-test.js
+42 -3
@@ -28,6 +28,11 @@ describe('ReactDefaultPerf', function() {
28 return now++;
29 });
30
31 + if (typeof console.table !== 'function') {
32 + console.table = () => {};
33 + console.table.isFake = true;
34 + }
35 +
36 React = require('React');
37 ReactDOM = require('ReactDOM');
38 ReactDefaultPerf = require('ReactDefaultPerf');
@@ -54,6 +59,12 @@ describe('ReactDefaultPerf', function() {
59 });
60 });
61
62 + afterEach(function() {
63 + if (console.table.isFake) {
64 + delete console.table;
65 + }
66 + });
67 +
68 function measure(fn) {
69 ReactDefaultPerf.start();
70 fn();
@@ -68,7 +79,7 @@ describe('ReactDefaultPerf', function() {
79 ReactDOM.render(<App />, container);
80 });
81
71 - var summary = ReactDefaultPerf.getMeasurementsSummaryMap(measurements);
82 + var summary = ReactDefaultPerf.getWasted(measurements);
83 expect(summary.length).toBe(2);
84
85 /*eslint-disable dot-notation */
@@ -94,7 +105,7 @@ describe('ReactDefaultPerf', function() {
105 ReactDOM.render(<App flipSecond={true} />, container);
106 });
107
97 - var summary = ReactDefaultPerf.getMeasurementsSummaryMap(measurements);
108 + var summary = ReactDefaultPerf.getWasted(measurements);
109 expect(summary.length).toBe(1);
110
111 /*eslint-disable dot-notation */
@@ -108,7 +119,7 @@ describe('ReactDefaultPerf', function() {
119
120 function expectNoWaste(fn) {
121 var measurements = measure(fn);
111 - var summary = ReactDefaultPerf.getMeasurementsSummaryMap(measurements);
122 + var summary = ReactDefaultPerf.getWasted(measurements);
123 expect(summary).toEqual([]);
124 }
125
@@ -226,4 +237,32 @@ describe('ReactDefaultPerf', function() {
237 expect(summary).toEqual([]);
238 });
239
240 + it('warns once when using getMeasurementsSummaryMap', function() {
241 + var measurements = measure(() => {});
242 + spyOn(console, 'error');
243 + ReactDefaultPerf.getMeasurementsSummaryMap(measurements);
244 + expect(console.error.calls.length).toBe(1);
245 + expect(console.error.argsForCall[0][0]).toContain(
246 + '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' +
247 + '`ReactPerf.getWasted(...)` instead.'
248 + );
249 +
250 + ReactDefaultPerf.getMeasurementsSummaryMap(measurements);
251 + expect(console.error.calls.length).toBe(1);
252 + });
253 +
254 + it('warns once when using printDOM', function() {
255 + var measurements = measure(() => {});
256 + spyOn(console, 'error');
257 + ReactDefaultPerf.printDOM(measurements);
258 + expect(console.error.calls.length).toBe(1);
259 + expect(console.error.argsForCall[0][0]).toContain(
260 + '`ReactPerf.printDOM(...)` is deprecated. Use ' +
261 + '`ReactPerf.printOperations(...)` instead.'
262 + );
263 +
264 + ReactDefaultPerf.printDOM(measurements);
265 + expect(console.error.calls.length).toBe(1);
266 + });
267 +
268 });