Add unregistered styles benchmark

This commit is contained in:
Nicolas Gallagher
2017-01-02 22:46:38 -08:00
parent 39c76ca50c
commit 236121e32c
4 changed files with 20 additions and 12 deletions
+2 -2
View File
@@ -56,8 +56,8 @@ const benchmark = ({ name, description, setup, teardown, task, runs }) => {
}
};
console.group();
console.log(`[benchmark] ${name}: ${description}`);
console.group(`[benchmark] ${name}`);
console.log(description);
window.requestAnimationFrame(a);
});
};
@@ -1,6 +1,6 @@
import React, { Component, PropTypes } from 'react';
const createDeepTree = ({ StyleSheet, View }) => {
const createDeepTree = ({ StyleSheet, View }, options = {}) => {
class DeepTree extends Component {
static propTypes = {
breadth: PropTypes.number.isRequired,
@@ -11,6 +11,7 @@ const createDeepTree = ({ StyleSheet, View }) => {
render() {
const { breadth, depth, id, wrap } = this.props;
let result = (
<View
style={[
@@ -45,7 +46,7 @@ const createDeepTree = ({ StyleSheet, View }) => {
}
}
const styles = StyleSheet.create({
const stylesObject = {
outer: {
padding: 4
},
@@ -77,7 +78,9 @@ const createDeepTree = ({ StyleSheet, View }) => {
terminal2: {
backgroundColor: 'red'
}
});
};
const styles = options.registerStyles ? StyleSheet.create(stylesObject) : stylesObject;
return DeepTree;
};
+6 -6
View File
@@ -4,16 +4,16 @@ import React from 'react';
import ReactDOM from 'react-dom';
import ReactNative from 'react-native';
// React Native for Web implementation of the tree
const DeepTree = createDeepTree(ReactNative);
const deepTreeBenchmark = ({ breadth, depth, registerStyles = true, runs, wrap }, node) => () => {
// React Native for Web implementation of the tree
const DeepTree = createDeepTree(ReactNative, { registerStyles });
const deepTreeBenchmark = ({ breadth, depth, wrap, runs }, node) => () => {
const setup = () => { };
const setup = () => {};
const teardown = () => ReactDOM.unmountComponentAtNode(node);
return benchmark({
name: 'DeepTree',
description: `depth=${depth}, breadth=${breadth}, wrap=${wrap})`,
name: `DeepTree (${registerStyles ? 'registered' : 'unregistered'}) styles)`,
description: `depth=${depth}, breadth=${breadth}, wrap=${wrap}`,
runs,
setup,
teardown,
+6 -1
View File
@@ -1,11 +1,16 @@
import createDeepTree from './benchmarks/deepTree/createDeepTree';
import deepTree from './benchmarks/deepTree';
import React from 'react';
import ReactDOM from 'react-dom';
import ReactNative from 'react-native';
const node = document.querySelector('.root');
const DeepTree = createDeepTree(ReactNative);
Promise.resolve()
.then(deepTree({ wrap: 4, depth: 3, breadth: 10, runs: 10, registerStyles: false }, node))
.then(deepTree({ wrap: 1, depth: 5, breadth: 3, runs: 20, registerStyles: false }, node))
.then(deepTree({ wrap: 4, depth: 3, breadth: 10, runs: 10 }, node))
.then(deepTree({ wrap: 1, depth: 5, breadth: 3, runs: 20 }, node))
.then(() => ReactDOM.render(<div>Complete</div>, node));
.then(() => ReactDOM.render(<DeepTree breadth={3} depth={5} id={0} wrap={1} />, node));