2016-12-17 3 views
2

В настоящее время работает Perf on React-Native, дает ошибку, и пакет, похоже, зависит от DOM. https://facebook.github.io/react/docs/perf.html#using-perfКак заставить Perf работать с React-Native?

Но все же его упоминается в документах React-Native? https://facebook.github.io/react-native/docs/performance.html#profiling

Мне не удалось запустить его как минимум.

ответ

0

Вы попробовали включить монитор производительности в меню dev, нажав кнопку «Показать монитор перф»?

Example

2

Да, я нашел подобный вопрос, мне кажется, react-addons-perf работать только на react, для react native проекта, вы можете использовать RCTRenderingPerf, который является встроенным инструментом в react native Lib. Мои реагировать родную версия "react-native": "^0.45.1"

import PerfMonitor from 'react-native/Libraries/Performance/RCTRenderingPerf';

измерения

PerfMonitor.toggle(); 
PerfMonitor.start(); 

измерение Стоп и печати Начала Результатов

PerfMonitor.stop(); 

Вам не нужно явно вызвать метод печати для печати результатов, stop() уже покрыл это.

Вы можете проверить это, запустив:

... 
    _setIndex(idx){ 
    PerfMonitor.toggle(); 
    PerfMonitor.start(); 
    this.setState({index:idx}) 
    } 

    componentDidUpdate(){ 
    PerfMonitor.stop(); 
    } 

    render() { 
    return (
     <View style={styles.container}> 
     <Text>Welcome to react-native {helloWorld()}</Text> 
     <Text>Open up App.js to start working on your app!</Text> 
     <Text>Changes you make will automatically reload.</Text> 
     <Text>Shake your phone to open the developer menu.</Text> 
     <Button title="click me to see profiling in console log" onPress={()=> this._setIndex(2)}/> 
     </View> 
    ); 
    } 
... 

Убедитесь Remote Debug JS включен, то вы можете увидеть результаты на хромированной консоли.

+1

Я бы добавил предупреждение: убедитесь, что 'PerfMonitor.toggle()' вызывается только один раз. Я бы назвал это за пределами '_setIndex' –

+0

, спасибо, это меня прослушивало. работаю сейчас! – kevinl

+0

@AmauryLiet Это очень хороший момент. Вы можете поместить 'PerfMonitor.toggle()' в 'componentWillMount()' –

Смежные вопросы