2010-02-05 12 views
6

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

क्या कुछ प्रोफाइलिंग टूल या ओआरएम उपयोग (विशेष रूप से: हाइबरनेट) का विश्लेषण करने की विधि है जो महत्वपूर्ण द्रव्यमान तक पहुंचने के बाद मेरे आवेदन को ट्यून करने में मेरी मदद कर सकती है?

एकमात्र चीज जो दिमाग में आती है वह कुछ सेलेनियम स्क्रिप्ट लिखना है जो वास्तविक उपयोग की नकल करते हैं और विभिन्न कॉन्फ़िगरेशन के साथ लोड परीक्षण करते हैं। ऐसा लगता है कि यह काम कर सकता है लेकिन मुझे बाद में जानकारी प्राप्त करने के बारे में बहुत ही करीब लगता है। में एक बेहतर तरीका है ...

उत्तर

1

वहाँ कुछ रूपरेखा उपकरण या ORM उपयोग का विश्लेषण करने की विधि है (विशेष रूप से: हाइबरनेट) है कि मुझे धुन मदद कर सकते हैं मेरी आवेदन के बाद यह अहम तक पहुँच गया है?

हाइबरनेट 3 रन-टाइम पर statistics एकत्र करें। एक नजर रखने लायक हो सकता है। हाइबरनेट दस्तावेज़ में "Monitoring performance" अनुभाग है।

केवल एक चीज है जो मन में आता कुछ सेलेनियम लिपियों कि नकल वास्तविक उपयोग और विन्यास के साथ लोड परीक्षण कर लिखने के लिए है। ऐसा लगता है कि यह काम कर सकता है लेकिन की तरह लगता है कि जानकारी प्राप्त करने के बहुत करीब है।

आपको कुछ वास्तविक वर्कलोड को कैप्चर करने के लिए पहले प्रयास करना चाहिए। फिर इसे पुन: उत्पन्न करने का तरीका जानें।

अन्यथा आप अभी भी पक्षपातपूर्ण होंगे और एक ऐसा भार उत्पन्न कर सकते हैं जो वास्तव में वास्तविकता का प्रतिनिधित्व नहीं करता है। यदि आप वास्तविक वर्कलोड को कैप्चर नहीं कर सकते हैं, तो संभावित एंड-यूजर के साथ चर्चा करें कि वे ऐप का उपयोग कैसे करते हैं और यह सुनिश्चित कर लें कि आपका परिदृश्य वास्तविक अंत उपयोगकर्ता व्यवहार के जितना संभव हो सके।

0

अपने उत्पादन डेटाबेस के टैब रखने के लिए अपने डेटाबेस के SQL प्रोफाइलर/लॉगर का उपयोग करें। आलसी लोडिंग प्रश्नों के लिए एक नजर रखें या अक्सर बार-बार पूछे जाने वाले प्रश्न जो एन + 1 समस्या का संकेत दे सकते हैं (आलसी संग्रह पर पुनरावृत्ति, प्रत्येक वस्तु को व्यक्तिगत रूप से लोड करना)।

मुझे ऐसी (कोई भी) ओआरएम पता नहीं है जो ऐसी क्षमता प्रदान करता है।

1

"... मुझे महत्वपूर्ण द्रव्यमान तक पहुंचने के बाद मेरे आवेदन को ट्यून करने में मदद करें?"

यह महत्वपूर्ण है।

आप अपने आवेदन को पूरी तरह से ट्यून कर रहे हैं - पूरी तरह से। ऐप + डेटा बेस स्ट्रक्चर + हाइबरनेट ओआरएम मैपिंग्स + कुछ और।

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

ट्यूनिंग लॉग डीबगिंग लॉग के रूप में महत्वपूर्ण हैं। और वे आपके आवेदन का प्रथम श्रेणी का हिस्सा हैं।

1

Hibernate Profiler हाइबरनेट के रन टाइम आंकड़ों से लाइव रिपोर्ट जेनरेट कर सकता है। विभिन्न अलर्ट जेनरेट किए जाते हैं, जैसे चयन एन + 1 के बारे में चेतावनी।

इसका उपयोग निरंतर एकीकरण प्रणाली में किया जा सकता है।

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