2010-11-11 14 views
6

पर एप्लिकेशन स्टार्टअप को तेज करें मेरे पास Guice, Jersey और EclipseLink के साथ कॉन्फ़िगर किया गया एक छोटा वेब एप्लिकेशन है, और इस एप्लिकेशन को विकास के दौरान जेट्टी (8.0.0.एम 1) पर चलाएं। लगभग 10 (छोटे) जेपीए प्रबंधित कक्षाएं (संस्थाएं और एम्बेड करने योग्य) हैं, और लगभग 20 वर्ग कुल हैं।जेटी

आरंभिक स्टार्टअप में पहले अनुरोधों के लिए 15 सेकंड + 5 सेकंड लगते हैं। ऐसा लगता है कि जेपीए पहले अनुरोध पर काम कर रहा है, क्योंकि मेरे पास टेबल जनरेशन रणनीति "बनाना" सक्षम है और पहले अनुरोध पर मेवेन से कुछ जेपीए आउटपुट देखें।

एक पुनः लोड में लगभग 10 सेकंड लगते हैं और पुनः लोड करने के बाद पहला अनुरोध लगभग 3 से 4 सेकंड लगता है।

आप सोच सकते हैं कि स्टार्टअप समय इतना बुरा नहीं है, लेकिन मुझे आश्चर्य है कि क्या मैं स्टार्टअप को तेजी से Django के साथ काम करने के लिए तेज कर सकता हूं। स्टार्टअप ट्यूनिंग के लिए कोई विचार?

+0

क्या आपकी चिंता स्टार्टअप समय प्रति है, या पहले उपयोगकर्ता को स्टार्टअप लागत का भुगतान करना पड़ता है? यदि यह उत्तरार्द्ध है, तो आप अपने एप्लिकेशन को इसे गर्म करने के लिए स्टार्टअप पर खुद को अनुरोध भेज सकते हैं। फिर पहला उपयोगकर्ता सामान्य प्रतिक्रिया समय देखता है। –

+0

मेरी चिंता विकास के दौरान स्टार्टअप समय है। पुनरारंभ उत्पादन में अपेक्षाकृत दुर्लभ हैं इसलिए मैं स्वीकार करता हूं कि पहले उपयोगकर्ता को कुछ सेकंड प्रतीक्षा करनी चाहिए। – deamon

+1

यदि आप कोड परिवर्तनों (स्कीमा परिवर्तनों के कारण) के कारण पुनरारंभ करते हैं, तो जेआरबेल (http://www.zeroturnaround.com/jrebel/) के साथ पूरी तरह से पुनरारंभ (लगभग) से बचने का प्रयास करें। यह मुफ़्त नहीं है, लेकिन यह बहुत समय बचाता है (मैं उनके साथ संबद्ध नहीं हूं)। – DaGGeRRz

उत्तर

2

मुझे डर है कि यदि आप टेबल निर्माण रणनीति को हटाने के लिए तैयार नहीं हैं, तो आपको ऐसे लोडिंग समय बर्दाश्त करना होगा। संक्षेप में, हर बार जब आपका स्टार्टअप आपका एप्लिकेशन शुरू होता है, तो यह टेबल को ड्रॉप/बना/सत्यापित करेगा और सही डीडीएल कथन जारी करेगा ताकि यह आपके पैकेज में इकाइयों से मेल खा सके।

मान लीजिए कि आप अपनी संस्थाओं को परिभाषित कर रहे हैं और आप कुछ व्यवसाय-तर्क कोड पर काम कर रहे हैं, तो आप एक बार डेटाबेस बना सकते हैं, और बस अपने प्रारंभिक सेटअप का पुनः उपयोग कर सकते हैं।

0

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

एकमात्र विकल्प जो मैं देखता हूं वह डेटाबेस का उपयोग कर रहा है जिसमें इसकी स्कीमा पहले से ही उचित रूप से बनाई गई है और हर बार इसे छोड़ नहीं रही है।

+0

मैं पहले से ही एक इन-मेमोरी डीबी (डर्बी) का उपयोग कर रहा हूं। – deamon

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