2010-08-22 22 views
6

मैं लिफ्ट 2.0 अभिनेताओं और स्टेटफुलिपिपेट्स आदि के साथ तालिका में लाता हूं, लेकिन मैं इन चीजों के स्मृति ओवरहेड के बारे में थोड़ा चिंतित हूं। मेरा सवाल दो गुना है:स्कैला का लिफ्ट राज्य का प्रबंधन कैसे करता है?

  1. लिफ्ट निर्धारित करता है कि कचरा कब राज्य वस्तुओं को इकट्ठा करता है?
  2. पृष्ठ अनुरोध की स्मृति पदचिह्न कैसा दिखता है?

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

उत्तर

12

लिफ्ट एक सत्र में राज्य की जानकारी संग्रहीत करता है, इसलिए एक बार सत्र नष्ट हो जाने के बाद उस सत्र से जुड़े राज्य दूर हो जाते हैं।

सत्र के भीतर, लिफ्ट प्रत्येक पृष्ठ को ट्रैक करता है जिसके लिए राज्य आवंटित किया जाता है (उदाहरण के लिए, ब्राउज़र में AJAX बटन और सर्वर पर फ़ंक्शन के बीच मैपिंग) और ब्राउज़र से दिल-धड़कन है। 10 मिनट में दिल की धड़कन नहीं देखे गए पृष्ठों के लिए फ़ंक्शंस को संदर्भित नहीं किया जाता है, इसलिए JVM उन्हें कचरा संग्रह कर सकता है। यह सब ट्यून करने योग्य है, इसलिए आप दिल-धड़कन आवृत्ति, कार्य जीवनकाल इत्यादि बदल सकते हैं, लेकिन व्यवहार में चूक काफी अच्छी तरह से काम करती है।

सत्र विस्फोट के मामले में, हाँ ... यह मामूली समस्या है। लोकप्रिय साइटों (http://demo.liftweb.net/ सहित) इसका अनुभव करें। उदाहरण कोड (http://github.com/lift/lift/tree/master/examples/example/ देखें) एक सत्र द्वारा बनाए गए सत्रों का पता लगाता है और फिर त्याग दिया जाता है और उन शुरुआती समय समाप्त हो जाता है। मैं demo.liftweb.net को 256 एमबी ढेर आकार (जो 512 एमबी वीपीएस में फिट होगा) के साथ चल रहा है और कभी-कभी, सत्र की गणना 1,000 से अधिक हो जाती है, लेकिन यह खोज इंजन यातायात के लिए जल्दी से गिर जाती है।

+2

लेखक से जवाब, मुझे सम्मानित किया गया है। विवरण के लिए और एक अद्भुत परियोजना के लिए धन्यवाद! –

1

मुझे लगता है कि मेमोरी पदचिह्न के बारे में सवाल एक बार मेलिंग सूची पर कहीं भी दिया गया था, लेकिन मुझे इस समय यह नहीं मिल रहा है।

कचरा संग्रह कुछ निष्क्रिय समय के बाद किया जाता है। हालांकि, example on the wiki है जो वेब क्रॉलर द्वारा उत्पन्न सत्रों को मारने के लिए कुछ बेहतर हेरिस्टिक का उपयोग करता है।

बेशक, अपने स्वयं के प्रोजेक्ट के लिए मेमोरी खपत को कुछ सत्रों के साथ विजुअलVM की जांच करने के लिए समझ में आता है।

+0

VisualVM के बारे में नहीं सुना था, धन्यवाद! –

+1

jvmstat टूल के अंदर VisualGC को न भूलें। –

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