हमने बहुत तीव्र प्रोसेसिंग एप्लिकेशन में फ़िल्टर के प्रकार के रूप में कार्य करने के लिए समाधान के हिस्से के रूप में ड्रोल का उपयोग किया, शायद 500,000 + काम करने वाली मेमोरी ऑब्जेक्ट्स पर 100 नियमों को चलाया जा सकता है। पता चला है कि यह बेहद धीमी है। किसी और को बैच प्रकार प्रसंस्करण अनुप्रयोग में ड्रोल का उपयोग करके कोई अनुभव है?भारी बैच प्रक्रिया में डोलॉल्स का उपयोग
उत्तर
मैंने ड्रूल्स के नवीनतम संस्करण के साथ काम नहीं किया है (पिछली बार जब मैंने इसे लगभग एक साल पहले इस्तेमाल किया था), लेकिन फिर हमारे उच्च लोड बेंचमार्क ने इसे धीमा साबित कर दिया। इस पर हमारे अधिकांश वास्तुकला के आधार पर एक बड़ी निराशा होती है।
कम से कम कुछ अच्छा मैं drools के बारे में याद है कि उनके देव टीम बहुत उपयोगी आईआरसी पर उपलब्ध है और किया गया है, तो आप उन्हें एक कोशिश दे सकता है, वे सब के बाद विशेषज्ञों रहे हैं: irc.codehaus.org #drools
ड्रूल्स वास्तव में बड़ी संख्या में वस्तुओं पर चलाने के लिए डिज़ाइन नहीं किया गया है। यह कुछ वस्तुओं पर जटिल नियम चलाने के लिए अनुकूलित है।
प्रत्येक अतिरिक्त ऑब्जेक्ट के लिए वर्किंग मेमोरी प्रारंभिक बहुत धीमी है और कैशिंग रणनीतियों को प्रति कार्य मेमोरी ऑब्जेक्ट पर काम करने के लिए डिज़ाइन किया गया है।
हम ड्रॉल्स को भी देख रहे थे, लेकिन हमारे लिए ऑब्जेक्ट्स की संख्या कम है इसलिए यह कोई मुद्दा नहीं है। मुझे यह याद रखना याद है कि एक ही एल्गोरिदम के वैकल्पिक संस्करण हैं जो स्मृति उपयोग को अधिक ध्यान में रखते हैं, और गति के लिए ऑप्टिमाइज़ किए जाते हैं जबकि अभी भी एक ही एल्गोरिदम पर आधारित होते हैं। निश्चित नहीं है कि उनमें से किसी ने इसे वास्तविक उपयोग करने योग्य लाइब्रेरी में बनाया है।
आपके नियमों पर निर्भर करता है - 500K ऑब्जेक्ट्स उचित स्मृति के लिए उचित है (इसे स्मृति में एक आरईटीई नेटवर्क को पॉप्युलेट करना है, इसलिए स्मृति उपयोग 500K ऑब्जेक्ट्स का एक बहु है - यानी ऑब्जेक्ट्स के लिए स्पेस + नेटवर्क स्ट्रक्चर, इंडेक्स के लिए स्पेस आदि) - यह संभव है कि आप डिस्क पर पेजिंग कर रहे हैं जो वास्तव में धीमा होगा।
बेशक, यदि आपके पास नियम हैं जो एक ही प्रकार के तथ्य के संयोजन से मेल खाते हैं, जो संयोजनों के विस्फोट का प्रयास कर सकते हैं, भले ही आपके पास 1 नियम वास्तव में धीमा हो। यदि आपके पास विश्लेषण के बारे में कोई और जानकारी है जो आप कर रहे हैं जो संभवतः संभावित समाधानों में मदद करेगा।
मैं सिर्फ खुद को डोलॉल्स सीख रहा हूं, इसलिए शायद मुझे कुछ याद आ रहा है, लेकिन एक बार में पांच सौ हजार वस्तुओं का पूरा बैच क्यों काम कर रहा है? एकमात्र कारण यह है कि मैं सोच सकता हूं कि ऐसे नियम हैं जो केवल तभी लाते हैं जब बैच में दो या दो से अधिक आइटम संबंधित होते हैं।
यदि ऐसा नहीं है, तो शायद आप एक स्टेटलेस सत्र का उपयोग कर सकते हैं और एक समय में एक ऑब्जेक्ट का दावा कर सकते हैं। मुझे लगता है कि नियम उस मामले में 500k गुना तेजी से चलेंगे।
भले ही यह मामला हो, तो क्या आपके सभी नियमों को सभी 500k ऑब्जेक्ट तक पहुंच की आवश्यकता है? क्या आप प्रति-आइटम नियमों को एक समय में लागू करके चीजों को गति दे सकते हैं, और उसके बाद प्रसंस्करण के दूसरे चरण में एक अलग नियमबेस और कार्यशील स्मृति का उपयोग करके बैच स्तर के नियम लागू होते हैं? यह डेटा की मात्रा को नहीं बदलेगा, लेकिन आरईटीई नेटवर्क छोटा होगा क्योंकि सरल नियम हटा दिए गए थे।
एक वैकल्पिक दृष्टिकोण दूसरे चरण के दौरान कोशिश करने के लिए और वस्तुओं की संबंधित समूह की पहचान करने और जोर समूहों में वस्तुओं, आगे विभाजित RETE नेटवर्क के रूप में रूप में अच्छी तरह स्मृति काम करने में डेटा का दायरा कम हो जाएगा।
एक स्टेटलेस सत्र का उपयोग करें और वस्तुओं को एक समय में जोड़ें?
मैंने 1M तथ्यों वाले एक राज्यव्यापी मेमोरी मेमोरी के साथ एक ड्रोल का उपयोग किया है। आपके नियमों और अंतर्निहित जेवीएम दोनों के कुछ ट्यूनिंग के साथ, प्रारंभिक स्टार्ट-अप के लिए कुछ मिनटों के बाद प्रदर्शन काफी अच्छा हो सकता है। यदि आप अधिक जानकारी चाहते हैं तो मुझे बताएं।
मुझे उन विवरणों में दिलचस्पी है, क्या आप उन्हें हमारे साथ साझा कर सकते हैं? मैं डेटा के एक बड़े सेट पर ड्रोल भी चला रहा हूं और कोई भी ट्यूनिंग बहुत अच्छा होगा। –
मुझे कुछ हजार वस्तुओं को पार्स करने के बाद आउटऑफमेमरी त्रुटियों में समस्याएं थीं। एक अलग डिफ़ॉल्ट अनुकूलक सेट करने से समस्या हल हो गई।
OptimizerFactory.setDefaultOptimizer(OptimizerFactory.SAFE_REFLECTIVE);
इस अनुकूलक भी -Dmvel2.disable.jit = सच
- 1. मुझे डोलॉल्स का उपयोग क्यों करना चाहिए?
- 2. डोलॉल्स: नियम के एलएचएस में एनम का उपयोग कैसे करें?
- 3. बैच प्रक्रिया सूची
- 4. विंडोज बैच फ़ाइल: अंतिम प्रक्रिया का पीआईडी?
- 5. स्वैप फ़ाइल में डुबकी से भारी प्रक्रिया को रोकना
- 6. वॉटिन का भारी उपयोग, आईई खुली समस्या
- 7. डोलॉल्स: समय प्रतिबंधित नियम
- 8. का उपयोग अजगर प्रत्येक प्रक्रिया
- 9. डोलॉल्स: डेटाबेस में नियमों को संग्रहीत करना
- 10. डोलॉल्स एक लूप में आग लगती है
- 11. प्रतिक्रियाशील एक्सटेंशन: बैचों में प्रक्रिया की घटनाएं + प्रत्येक बैच
- 12. भारी सूचकांक
- 13. MySQL: उपयोग करने के लिए प्रक्रिया प्रक्रिया पैराम का उपयोग
- 14. PHP के "<? Php" टैग का भारी उपयोग
- 15. रीडायरेक्ट आउटपुट के साथ बैच में पृष्ठभूमि प्रक्रिया
- 16. बड़ी, भारी उपयोग की गई तालिका
- 17. भारी mysql उपयोग CPU या मेमोरी
- 18. SQLite बहु प्रक्रिया का उपयोग
- 19. प्रक्रिया का उपयोग करना। Word
- 20. बैच फ़ाइल में आप SETLOCAL का उपयोग कैसे करते हैं?
- 21. FxCop भारी रिपोर्ट का प्रबंधन कैसे करें
- 22. डोलॉल्स - दोहराए गए कार्यक्रम और अस्थायी संबंध
- 23. भारी समांतरता के लिए एसिंक्रोनस प्रतिनिधि या थ्रेडपूल। क्यूयूयूसर वर्कइटम का उपयोग करें?
- 24. बैच फ़ाइल से psake का उपयोग कैसे करें?
- 25. पीयर "भारी" है?
- 26. शीर्ष बैच मोड में CPU उपयोग
- 27. भारी आईट्यून्स कनेक्ट स्क्रैपिंग
- 28. प्रक्रिया निष्पादन पर जेएनए का उपयोग करने के लाभ
- 29. डोलॉल्स नियम: मैं "कब" अनुभाग पर एक विधि का उपयोग कैसे कर सकता हूं?
- 30. बैच फ़ाइल
कुछ भी नया साझा करने के लिए पैरामीटर का उपयोग करके सेट किया जा सकता .. ?? – Scoobie