2016-05-04 14 views
5

प्रिंट करता है मैं प्रतिक्रिया perf उपकरण का उपयोग कर अपने ऐप के प्रदर्शन का परीक्षण करने की कोशिश कर रहा हूं। समस्या यह काम नहीं कर रहा है। मैं कंसोल, जो (कोई सांत्वना त्रुटि या चेतावनी) काम करता है मेंप्रतिक्रिया perf हमेशा खाली ऐरे

Perf.start() 

Perf.stop() 

Perf.printWasted() 

फोन, लेकिन printWasted() हमेशा खाली सरणी और संदेश

कुल समय रिटर्न: 0.00 एमएस

यह printInclusive() और printExclusive() जैसे अन्य कार्यों के लिए भी होता है समस्या क्या हो सकती है? पीएस। मैं प्रतिक्रिया-राउटर का उपयोग कर रहा हूं, इसके साथ प्रतिक्रिया प्रति प्रतिक्रिया कैसे होती है? शायद यह कुछ मुद्दों का कारण बन रहा है? इसके अलावा, process.env.NODE_ENV उत्पादन के लिए सेट नहीं है, और मैं React 0.13.3

+0

शायद यह एक बेवकूफ सवाल है, लेकिन आप किसी अन्य के बाद उन्हें चलाने का कोई मौका नहीं हैं, है ना? – lauriys

+0

@ हत्सुनी आप 'उन्हें' और 'एक के बाद एक' का क्या मतलब है :)? यदि आपका मतलब है() और रोकें() विधियों, मैं शुरू करता हूं, फिर कुछ क्रियाएं करें जो ऐप को फिर से प्रस्तुत करने का कारण बनती हैं, फिर किसी बिंदु पर कॉल रोकें() और स्टॉप() के बाद मैं printWasted() को कॉल करता हूं। – idjuradj

उत्तर

3

मुझे यहां वर्णित वही समस्या थी - मेरे मामले में यह एक मूर्खतापूर्ण गलती थी, हालांकि। यह संभव है कि आप (या भविष्य में किसी और ने) ने एक ही मूर्खतापूर्ण गलती की हो, इसलिए मैंने सोचा कि मैं समझाऊंगा कि मैंने क्या किया।

मैं मैं कहाँ लोड किए गए पृष्ठ में सीधे पुस्तकालय प्रतिक्रिया कुछ परीक्षण कोड लिख रहा था -

<script src="/Script/ThirdParty/react-15.0.0.js"></script> 
<script src="/Script/ThirdParty/react-dom-15.0.0.js"></script> 

जब मैं कैसे पेज प्रदर्शन कर रहा था के बारे में जानकारी प्राप्त करना चाहता था, मैं भी "एडऑन" स्क्रिप्ट लोड -

<script src="/Script/ThirdParty/react-15.0.0.js"></script> 
<script src="/Script/ThirdParty/react-dom-15.0.0.js"></script> 
<script src="/Script/ThirdParty/react-with-addons-15.0.0.js"></script> 

तो पेज ताज़ा किया, सांत्वना के पास गया और टाइप किया

React.addons.Perf.start() 

मैं पृष्ठ के साथ संवाद ताकि एक फिर से प्रस्तुत करना हुआ और उसके बाद आपके द्वारा लिखा गया

React.addons.Perf.stop() 
React.addons.Perf.printWasted() 

और मैं हमेशा मिला

सरणी [0]

कुल समय: 0.0ms

गलती यह थी कि एडॉन्स स्क्रिप्ट को प्राथमिक प्रतिक्रिया स्क्रिप्ट में के अलावा लोड नहीं किया जाना चाहिए, यह लोड होना चाहिए डी इसके बजाय - यानी।

<script src="/Script/ThirdParty/react-with-addons-15.0.0.js"></script> 
<script src="/Script/ThirdParty/react-dom-15.0.0.js"></script> 

इसे ठीक करने के बाद, मैंने perf टूल विधियों से परिणाम प्राप्त करना शुरू कर दिया।

+0

असल में यह वही समाधान था जो मेरे लिए काम करता था। मैं इस धागे को अद्यतन करना भूल गया। इस समाधान को साझा करने के लिए धन्यवाद, भले ही मुझे यह करना चाहिए था! – idjuradj

+0

इससे मुझे एक टन भी मदद मिली! मैं ब्राउज़र एप का उपयोग करके अपने ऐप को 'विक्रेता' और 'मुख्य' पैकेज में बंडल करता हूं, और क्योंकि मैं विक्रेता पैकेज में 'प्रतिक्रिया' और 'प्रतिक्रिया-एडॉन्स-परफ' दोनों को शामिल करने में विफल रहा, इसलिए वे कोड साझा नहीं कर रहे थे और काम नहीं कर रहे थे। – incaren

1

मैं एक ही समस्या पर ठोकर खाई है कि जब webpack's extarnals का उपयोग कर के रूप में इस त्वरित प्रारंभ में सुझाव दिया: https://www.typescriptlang.org/docs/handbook/react-&-webpack.html

// webpack.conf.js: 
//... 
externals: { 
    "react": "React", 
    "react-dom": "ReactDOM" 
} 

साथ

// index.js 
// ... 
window.Perf = require('react-addons-perf') 

और

// index.html 
<script src="/js/react/dist/react.js"></script> 
<script src="/js/react-dom/dist/react-dom.js"></script> 
<script src="/js/bundle.js" charset="UTF-8"></script> 

इस विन्यास भी बाहर कर देता है Perf परिणाम अल्वा के परिणामस्वरूप हाँ खाली हो। externals प्रविष्टि को हटाने (और इस प्रकार वेबपैक के बंडल के अंदर प्रतिक्रिया डालने) समस्या हल हो गई। बाहर निकलता है कोई बिल्ड समय प्रदर्शन अंतर नहीं था।

संबंधित मुद्दे