2012-03-23 32 views
8

हम मोबाइल उपकरणों (एंड्रॉइड + आईओएस) के लिए एचटीएमएल 5 एप्लीकेशन पर काम कर रहे हैं। लेकिन बड़ी समस्या स्मृति की खपत है - प्रयुक्त स्मृति राशि बहुत तेजी से बढ़ रही है और ऐप लगी हो गई है।मोबाइल वेबकिट मेमोरी खपत

एचटीएमएल (जावास्क्रिप्ट) अनुप्रयोगों में मेमोरी लीक के साथ लड़ने के लिए सर्वोत्तम प्रथाओं, संकेत, उपकरण, समाधान इत्यादि क्या हैं?

पीएस हम केवल वेबकिट ब्राउज़र

उत्तर

7

पर लक्षित कर रहे हैं हाल ही में इस विषय पर कुछ वाकई महान लेख रहे हैं। ऑब्जेक्ट सृजन के कुछ वाकई आश्चर्यजनक स्रोत हैं जो वास्तव में आपका ध्यान आकर्षित नहीं करते हैं जब तक कि आप इसके लिए ट्यून नहीं कर लेते। आम तौर पर, समस्या स्मृति उपयोग नहीं है, यह वास्तव में कचरा संग्रह चक्र है जो ऐप को धीरे-धीरे लीक करने वाली स्मृति एकत्र करने के लिए आवश्यक है। http://www.scirra.com/blog/76/how-to-write-low-garbage-real-time-javascript

जहाँ तक समस्या का निदान करने के रूप में उपकरण का मुकाबला करने के /, गूगल क्रोम के Speedtracer मन में आता है:

यह लेख सबसे अच्छा मैं हाल ही में विषय पर पढ़ा है है। बेशक, क्रोम के लिए ट्यूनिंग सभी ब्राउज़रों के लिए ट्यूनिंग की गारंटी नहीं देता है, लेकिन क्रोम में ऑब्जेक्ट सृजन के परिणामस्वरूप अधिकांश चीजें जेएस स्पेक के लिए आम हैं क्योंकि यह सभी ब्राउज़रों द्वारा लागू की जाती है।

विचार करने के लिए एक महत्वपूर्ण बात यह है कि राम उपयोग और वीडियो रैम का उपयोग समान नहीं है। एक सबसे अच्छा अभ्यास यह निर्धारित करना है कि आपके यूआई के कौन से हिस्से हार्डवेयर तेज हो रहे हैं और यह सुनिश्चित करने के लिए कि वे छोटे हैं (यानी स्क्रीन पर सभी एक बार फिट हो)। यदि आपके पास स्क्रीन हार्डवेयर के त्वरित स्क्रॉलिंग भाग हैं, तो आपको GPU फाड़ना/टाइलिंग और लगी स्क्रॉलिंग मिल जाएगी। आप इसे आईओएस सिम्युलेटर का उपयोग करके भाग में देख सकते हैं। इस आलेख में संक्षिप्त रूप से विचार शामिल है: http://devinsheaven.com/turn-your-iphone-wacky-and-make-your-iphone-application-better/

आखिरकार, जावास्क्रिप्ट में वास्तव में सामान्य स्मृति रिसाव पैटर्न का एक गुच्छा है जो हर इंजीनियर समय-समय पर चलता है। आईबीएम की उनकी एक अच्छी सूची है। मैं दो से अधिक लिंक पोस्ट नहीं कर सकता क्योंकि मैं एक n00b हूं, लेकिन आप "सामान्य जावास्क्रिप्ट मेमोरी लीक" के लिए Google पर जा सकते हैं और शायद यह पहला परिणाम है।

3

क्रोम के भीतर उपयोगी कुछ अन्य नैदानिक ​​उपकरण कार्य प्रबंधक, टाइमलाइन पैनल और हीप प्रोफाइलर हैं।

ब्राउज़र - क्रोम कैनरी (27.0.1447।3 कनारी)

  • कार्य प्रबंधक: उपकरण पर जाएं -> कार्य प्रबंधक // शीर्षकों टैब राइट क्लिक करें और जाँच 'JavaScript स्मृति'

  • समयसीमा टैब: टूल्स -> डेवलपर उपकरण -> समय //, रिकार्ड पर क्लिक करें कुछ बातचीत करते हैं, तो बंद करो रिकॉर्ड

  • ढेर प्रोफाइलर: टूल्स -> डेवलपर टूल -> प्रोफाइल // 'ले लो ढेर स्नैपशॉट'

  • रिमोट डिबगिंग क्लिक करें

  • दीप मेमोरी प्रोफाइलर

"3 स्नैपशॉट" तकनीक // प्रस्तुति "Gmail में मेमोरी लीक को खत्म करना"

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