मैं एक उद्देश्य-सी आधारित आईओएस ऐप में प्रदर्शन समस्या के साथ मदद की तलाश में हूं।यूआई उत्तरदायी रखते हुए मैं स्वीकार्य प्रदर्शन के साथ स्क्रीन कैसे रिकॉर्ड कर सकता हूं?
मेरे पास एक आईओएस एप्लिकेशन है जो कैलियर की रेंडरइन कॉन्टेक्स्ट विधि का उपयोग कर स्क्रीन की सामग्री को कैप्चर करता है। यह AVFoundation का उपयोग कर एक वीडियो बनाने के लिए पर्याप्त स्क्रीन फ्रेम पर कब्जा करने का प्रयास करता है। उपयोगिता पर शोध उद्देश्यों के लिए स्क्रीन रिकॉर्डिंग को अन्य तत्वों के साथ जोड़ा जाता है। जबकि स्क्रीन पर कब्जा कर लिया जा रहा है, ऐप यूआईवेब व्यू की सामग्री भी प्रदर्शित कर सकता है, डेटा लाने के लिए नेटवर्क पर जा रहा है, आदि ... वेब व्यू की सामग्री मेरे नियंत्रण में नहीं है - यह मनमाने ढंग से सामग्री है वेब।
यह सेटअप काम कर रहा है लेकिन जैसा कि आप कल्पना कर सकते हैं, यह बटररी चिकनी नहीं है। चूंकि परत को मुख्य थ्रेड पर प्रस्तुत किया जाना चाहिए, इसलिए मुझे पसंद होने की तुलना में अधिक यूआई विवाद है। मैं जो करना चाहता हूं वह एक सेटअप है जहां यूआई की प्रतिक्रिया स्क्रीन कैप्चर पर प्राथमिकता दी जाती है। उदाहरण के लिए, यदि उपयोगकर्ता वेब दृश्य को स्क्रॉल कर रहा है, तो मैं रिकॉर्डिंग पर फ्रेम को एक भयानक स्क्रॉलिंग अनुभव की तुलना में छोड़ दूंगा।
मैंने डिस्पैच_सोर्स कोलेसिंग से कई तकनीकों के साथ प्रयोग किया है ताकि फ्रेम कैप्चर अनुरोधों को सीएडीस्प्ले लिंक के मुख्य कतार में ब्लॉक के रूप में सबमिट किया जा सके। अब तक वे सभी इसके बारे में प्रदर्शन करते हैं। फ़्रेम कैप्चर वर्तमान में स्क्रीन के मुख्य दृश्य के drawRect में ट्रिगर किया जा रहा है।
मैं यहां क्या पूछ रहा हूं: उपर्युक्त दिया गया है, आप कौन सी तकनीकों का सुझाव देंगे कि मैं अपने लक्ष्यों को प्राप्त करने का प्रयास करता हूं? मुझे एहसास है कि जवाब यह हो सकता है कि कोई अच्छा जवाब नहीं है ... लेकिन मैं कुछ भी कोशिश करना चाहता हूं, हालांकि यह खराब हो सकता है।
नोट: जो भी तकनीकों को ऐप स्टोर के अनुकूल होने की आवश्यकता है। CoreSurface हैक जैसे कुछ का उपयोग नहीं कर सकता है जो प्रदर्शन रिकॉर्डर का उपयोग/उपयोग करता है।
आपकी मदद के लिए धन्यवाद!
क्या यह उद्देश्य-सी में किया जा रहा है? भले ही, रिकॉर्डिंग प्रक्रिया के समय के लिए यह संभव हो और यदि अंतिम अनुरोध एक्स के लिए रिकॉर्डिंग को रोकता है (संख्या चुनें) फ्रेम? मेरे पास कोई आईओएस एक्सप नहीं है, लेकिन यह पहली बात है जो दिमाग में आई है। – Jared
हाय - हाँ, सभी ओब्जे-सी ... चूंकि 'बहुत लंबा' CPU अंतरों के कारण उपकरणों के बीच महत्वपूर्ण रूप से भिन्न होता है, इसलिए यह आवश्यकतानुसार कम सटीक हो सकता है। – Hunter
शायद जावास्क्रिप्ट डिबॉन्स के समान कुछ करें? https://github.com/pixelspring/NKBlueprint-Obj-C-Mix- कॉल या कॉल करने से पहले संभवतः CPU उपयोग की निगरानी करें? http://stackoverflow.com/questions/12889422/ios-cpu-usage-for-each-process-using-sysctl – Jared