2012-10-13 17 views
10

मैंने पढ़ा है कि डार्ट के साथ स्नैपशॉट्स के कारण आपका एप्लिकेशन 10x तेज हो सकता है। क्या कोई यह समझा सकता है कि यह वास्तव में क्या है और यह कैसे काम करता है? मैं स्नैपशॉट्स का उपयोग किस प्रकार का एप्लीकेशन करूँगा?डार्ट में स्नैपशॉट अवधारणा क्या है?

उत्तर

9

डार्ट के स्नैपशॉट्स Smalltalk images की तरह हैं इस अर्थ में कि वे लगभग तुरंत एप्लिकेशन स्टार्टअप की अनुमति देते हैं। हालांकि, स्मॉलटाक छवियों के विपरीत, स्नैपशॉट प्रोग्राम स्थिति को संग्रहीत नहीं करते हैं।

यह धीमी मोबाइल उपकरणों में विशेष रूप से सहायक है क्योंकि वे स्वाभाविक रूप से धीमे हैं और डेस्कटॉप सिस्टम की तुलना में स्मृति द्वारा भी प्रतिबंधित हैं। यही कारण और तथ्य यह है कि बैटरी उपयोग हमें अनावश्यक कार्यक्रमों को बंद करने के लिए begs प्रारंभ स्टार्टअप गति महत्वपूर्ण बनाता है।

डार्ट हीप स्नैपशॉट सुविधा के साथ धीमी स्टार्टअप के इस मुद्दे को संबोधित करता है, जो कि स्मॉलटॉक की छवि प्रणाली के समान है। किसी एप्लिकेशन का ढेर घुमाया जाता है और सभी ऑब्जेक्ट्स को एक साधारण फ़ाइल में लिखा जाता है। नोट: फिलहाल, एक उपकरण के साथ डार्ट वितरण जहाजों जो एक डार्ट वीएम को फायर करता है, एक एप्लिकेशन का कोड लोड करता है, और मुख्य कॉल करने से ठीक पहले, यह ढेर का एक स्नैपशॉट लेता है। एप्लिकेशन को तेज़ी से लोड करने के लिए डार्ट वीएम ऐसी स्नैपशॉट फ़ाइल का उपयोग कर सकता है।

स्नैपशॉट सुविधा का उपयोग डार्ट आइसोलेट्स (स्नैपशॉटवाइटर के साथ क्रमबद्ध) के बीच भेजे जा रहे ऑब्जेक्ट ग्राफ़ को क्रमबद्ध करने के लिए भी किया जाता है।

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

स्नैपशॉट प्रारूप स्वयं क्रॉस-प्लेटफार्म है जिसका अर्थ है कि यह 32-बिट, 64-बिट मशीनों और आगे के बीच काम करता है। प्रारूप बनाया गया है ताकि पॉइंटर फिक्सअप जैसे अतिरिक्त काम को कम करने पर जोर देने के साथ स्मृति में पढ़ना जल्दबाजी हो। http://code.google.com/p/dart/source/browse/trunk/dart/runtime/vm/snapshot.cc

और परीक्षण:

यहाँ snapshot.cc के लिए स्रोत कोड है http://code.google.com/p/dart/source/browse/trunk/dart/runtime/vm/snapshot_test.cc

तो कारण है कि यह 10 का एक पहलू से एक आवेदन स्टार्टअप की गति बढ़ा सकता है, क्योंकि यह नहीं एक है जावास्क्रिप्ट जैसे स्रोत कोड का गुच्छा जो भेजता है और बाद में धीरे-धीरे संसाधित होता है।

और आप इसका उपयोग कहां करना चाहेंगे? कहीं भी आप संभवतः कर सकते हैं। सर्वर की तरफ, यह मूल रूप से आपके लिए पहले से ही हो रहा है (और वास्तव में कोई फर्क नहीं पड़ता)। लेकिन क्लाइंट-साइड पर, यह संभव नहीं है अभी तक। जैसा कि मैं इसे समझता हूं, तत्काल स्टार्टअप के लिए ब्राउज़र पर इन स्नैपशॉट्स को सेवा देना संभव होगा, लेकिन आपको वास्तव में प्रतीक्षा करना होगा क्योंकि यह अब तक उपलब्ध नहीं है।

+0

ध्यान दें कि dart2js लोड करने के लिए स्नैपशॉट्स का उपयोग करते समय हमने 10X का स्टार्टअप सुधार देखा है। –

+0

@ सेठलैड क्या आप इसका मतलब बता सकते हैं? या शायद मेरा जवाब संपादित करें - यह सब के बाद एक विकी है :) –

+0

प्रारंभिक परीक्षणों से पता चलता है कि स्नैपशॉट से डार्ट 2 जेएस शुरू करना स्रोत कोड से dart2js शुरू करने से 10X तेज है। यह अभी भी शुरुआती है, लेकिन डेटा वादा करता है। –

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