Xcode / Instruments / Time Profiler का उपयोग करके प्रतिक्रियाशील मूल स्रोत कोड को कैसे प्रोफाइल करें


19

हम रिएक्ट नेटिव 0.59.10और रिएक्ट- रिडक्स का उपयोग कर रहे हैं 5.0.7, और सीपीयू-बाउंड प्रदर्शन समस्या का सामना कर रहे हैं, जिसमें हमारे Redux एक्शन को पूरा करने के लिए ~ 0.25 ले रहे हैं।

हमने इंस्ट्रूमेंट्स में टाइम प्रोफाइलर कॉन्फ़िगरेशन का उपयोग करके प्रोफाइल बनाया है, लेकिन हमारा कोई भी जेएस कोड का प्रतीक नहीं है।

Chrome में दूरस्थ रूप से डीबग करना "दूरस्थ निरीक्षक" पृष्ठ को डीबग करना प्रतीत होता है, जो पूरी तरह से अनपेक्षित है।

क्या जेएस फ़ंक्शन के नाम / कॉल के लिए, स्रोत मानचित्र बनाने या संलग्न करने के लिए नीचे दिए गए मेमोरी पतों को देखने का एक तरीका है?

उपकरण कॉलस्टैक


यदि आप एक्सपो का उपयोग कर रहे हैं, तो आप ऐप को सीधे क्रोम में चला सकते हैं और वहां डिबग कर सकते हैं।
मैकीबो

नहीं, हम देशी घटकों की एक अच्छी संख्या का उपयोग कर रहे हैं, और परिणामस्वरूप एक्सपो एक विकल्प नहीं है।
क्रेग ओटिस

जवाबों:


1

फ़ायरफ़ॉक्स प्रोफाइलर

फ़ायरफ़ॉक्स Profiler को समझना

फ़ायरफ़ॉक्स प्रोफाइलर के पास profiler.firefox.com/docs/ पर अधिक वर्तमान दस्तावेज़ उपलब्ध हैं। हालाँकि निम्नलिखित में गेको-विशिष्ट समस्याओं के लिए कुछ संभावित उपयोगी जानकारी हो सकती है।

आप फ़ायरफ़ॉक्स प्रोफाइलर्स के बारे में अक्सर पूछे जाने वाले प्रश्नों की जांच कर सकते हैं।

प्रदर्शन समस्या की रिपोर्ट करना फ़ायरफ़ॉक्स डेवलपर्स द्वारा अनुरोध किए जाने पर प्रोफ़ाइल प्राप्त करने के लिए चरण-दर-चरण मार्गदर्शिका है।

1. समयरेखा

टाइमलाइन में ट्रेसिंग मार्कर (रंगीन सेगमेंट) की कई पंक्तियाँ हैं जो दिलचस्प घटनाओं का संकेत देती हैं। अधिक जानकारी देखने के लिए उन पर होवर करें। ट्रेसिंग मार्कर के नीचे विभिन्न थ्रेड्स पर गतिविधि के साथ पंक्तियाँ हैं।

युक्ति: "[डिफ़ॉल्ट]" के साथ एनोटेट किए गए धागे माता-पिता (उर्फ "UI", उर्फ ​​"ब्राउज़र क्रोम", उर्फ ​​"मुख्य") प्रक्रिया में हैं और "[टैब]" के साथ एनोटेट वेब सामग्री में हैं (उर्फ) "बच्चे") प्रक्रियाएं।

यहां छवि विवरण दर्ज करें

युक्ति: मूल प्रक्रिया में लंबे समय तक चलने वाले कार्य ब्राउज़र UI (उर्फ "UI jank") के साथ सभी इनपुट या ड्राइंग को ब्लॉक कर देंगे, जबकि सामग्री प्रक्रिया में लंबे समय तक चलने वाले कार्य पृष्ठ के साथ अन्तरक्रियाशीलता को अवरुद्ध करेंगे, लेकिन फिर भी उपयोगकर्ता को पैन और करने की अनुमति देंगे APZ की बदौलत ज़ूम करें।

ट्रेसिंग मार्कर

Red: ये इंगित करते हैं कि ईवेंट लूप अनुत्तरदायी हो रहा है। ध्यान दें कि vsync जैसी उच्च प्राथमिकता वाली घटनाएं यहां शामिल नहीं हैं। यह भी ध्यान दें कि यह इंगित करता है कि क्या हुआ होगा एक घटना की प्रतीक्षा कर रहा था और जरूरी नहीं कि उस समय के लिए कोई घटना लंबित थी।

Black: ये तुल्यकालिक IPC कॉल का संकेत देते हैं।

2. ट्री को बुलाओ

यहां छवि विवरण दर्ज करें

कॉल ट्री shows रनिंग टाइम ’द्वारा आयोजित नमूनों को दर्शाता है जो दीवार घड़ी समय द्वारा डेटा दिखाएगा। पेड़ के तत्वों के दाईं ओर हल्के ग्रे नाम हैं जो इंगित करते हैं कि कोड कहां से आता है। ध्यान रखें कि तत्व जावास्क्रिप्ट, गेको या सिस्टम लाइब्रेरी से हो सकते हैं। ध्यान दें कि यदि कुछ कार्यों को अभी तक ठीक से नाम नहीं दिया गया है, तो प्रतीक अभी भी समाप्त नहीं हो सकता है।

युक्ति: आप क्लिपबोर्ड पर उसका नाम कॉपी करने का विकल्प पाने के लिए एक फ़ंक्शन नाम पर राइट-क्लिक कर सकते हैं।

3. प्रोफ़ाइल साझा करना "शेयर ..."> साझा करें स्वीकार करें कि आपके द्वारा खोले गए URL और आपके फ़ायरफ़ॉक्स एक्सटेंशन सर्वर को भेजे गए प्रोफ़ाइल डेटा में शामिल होंगे। यदि आप एक अलग समय सीमा का चयन करते हैं, तो "पर्मलिंक" को दबाकर प्रकट किया गया URL बदल जाएगा ताकि आप सुनिश्चित हो सकें कि URL के प्राप्तकर्ता को वही चीजें दिखाई देंगी जो आप देख रहे हैं।


क्या फ़ायरफ़ॉक्स प्रोफाइलर सफारी या क्रोम प्रोफाइलर्स की तुलना में अलग व्यवहार करता है? मेरे अनुभव में, वे दूरस्थ डिबगिंग टैब / पृष्ठ को ही प्रोफाइल करते हैं, न कि रनिंग रिएक्टिव नेटिव एप्लिकेशन को।
क्रेग ओटिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.