2011-04-13 12 views
6

हमारे स्प्रिंग विन्यास 1200 सेम होते हैं, और हम का उपयोग घटक स्कैन/@ Autowired के बीच का अंतर। यदि हमने एप्लिकेशनकॉन्टेक्स्ट को एक्सएमएल (और अभी भी @Autowired) के रूप में निर्यात किया है, तो हमने संदर्भ स्टार्टअप-टाइम पर लगभग 10% बचाया है।प्रदर्शन वसंत javaconfig, xml config और एनोटेशन

अगर हम वसंत javaconfig कोशिश करते हैं तो हम क्या उम्मीद कर सकते हैं?

+0

केवल क्योंकि मैं में दिलचस्पी है: कब तक स्टार्टअप 1200 सेम के लिए ले करता है? – Ralph

+1

मेरी मशीन पर 10 सेकंड, यह एक मजाकिया संस्करण है (सभी भारी सामानों के बिना) – krosenvold

+0

जानकारी – Ralph

उत्तर

2

मुझे थोड़ा सा अनुमान लगाया जाएगा, क्योंकि कोई पार्सिंग हो नहीं होगा (एनोटेशन को प्रतिबिंब के साथ 'पार्स' किया गया है, एक्सएमएल - एक्सएमएल पार्सर के साथ)।

कि, हालांकि, एक दूसरे के ऊपर विन्यास विकल्प का चयन करने के लिए एक कारण नहीं होना चाहिए। प्रदर्शन के लिए स्टार्टअप समय महत्वपूर्ण नहीं है।

+5

डेवलपर के रूप में स्टार्टअप समय मेरे लिए महत्वपूर्ण है, इसलिए मेरे लिए यह उन सभी का सबसे महत्वपूर्ण प्रदर्शन पहलू है;) – krosenvold

+1

@ क्रोसेंवोल्ड यदि आप प्रत्येक परिवर्तन पर दोबारा तैनात करते हैं .. हाँ, लेकिन आपको यह नहीं करना चाहिए – Bozho

+0

पुन: नियोजन के बीच व्यापार कुछ जेरेबेल का उपयोग करना हमेशा जैसा कि आप चाहते हैं उतना स्पष्ट कट नहीं होता है, खासकर यदि आपका कंटेनर स्टार्टअप पहले से ही तेज़ है। और एकीकरण परीक्षण की तरह सामान है। – krosenvold

4

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

+0

10% अंतर मूल रूप से हमें मिलता है क्योंकि हम xml का उपयोग करते समय घटक स्कैन अक्षम करते हैं (यदि मैं xml के लिए वास्तविक लोड समय को अनदेखा करता हूं, जिसे मैं मानता हूं तो 100-200ms की तरह कुछ होगा)। – krosenvold

+0

एक प्रकार से व्यापक ऑटोवायर से जुड़ी लागत भी है, लेकिन हमने इसे हटा नहीं दिया क्योंकि हमने एक्सएमएल + ऑटोवायर (केवल छोटे लूप का उपयोग कर चल रहे संदर्भ से सरल "बीन" घोषणाओं का निर्यात किया) – krosenvold

+0

@ क्रोसेंवॉल्ड: मेरा वर्तमान पसंदीदा दृष्टिकोण (जो अगले हफ्ते फिर से बदल जाएगा) बीन कक्षाओं में खुद को कन्स्ट्रक्टर इंजेक्शन के साथ '@ बीन 'का उपयोग करना है। कोई autowiring नहीं। यह मेरी निर्भरताओं का पालन करना इतना आसान बनाता है, और कन्स्ट्रक्टर एक्सएमएल के मुकाबले ज्यादा उपयोगी हैं। – skaffman

2

मैं वास्तव में एक समय पहले इस कोशिश की और depressingly यह तेजी से नहीं था .. या कम से कम तेजी से समझ योग्य नहीं। कुछ मामलों में जब मैंने वास्तव में मापा था यह धीमा था (कभी इतना छोटा)। काश मैं संख्या थी लेकिन यह मेरे अपने फायदे के लिए उन त्वरित परीक्षणों में से एक था। मैं भी 1200 सेम नहीं था लेकिन के बारे में 200

मैंने यह भी देखा मिश्रण XML और जावा config सबसे खराब प्रदर्शन (कभी तो थोड़ा) दे दी है।

मुझे अपने स्प्रिंग बूटअप समय में अड़चन हो पाया है हाइबरनेट है। मैं जेडीबीसी का उपयोग कर एक ही कॉन्फ़िगरेशन w/o हाइबरनेट के साथ एक और प्रोजेक्ट कर रहा हूं और बूटअप समय लगभग 1/3 है।

3

मैं एक अनुभवहीन बेंचमार्क एक्सएमएल, टिप्पणी और जावा config का उपयोग कर किया था। परिणाम आश्चर्यचकित थे (जावा कॉन्फ़िगर धीमा था)। मुझे नहीं पता कि क्या यह अपनी स्थिति में प्रासंगिक होगा, बेंचमार्क है किया जा रहा है कि वे क्या कर रहे हैं ...

http://www.jroller.com/kenwdelong/entry/is_spring_javaconfig_faster

+0

जावाकोनफिग एकमात्र वसंत कॉन्फ़िगरेशन शैली है जिसके लिए सीजीएलआईबी का उपयोग करके कोड पीढ़ी की आवश्यकता होती है, यही कारण है कि यह एक्सएमएल से थोड़ा धीमा होगा; सीजीएलआईबी की प्रारंभिक लागत काफी अधिक है। – krosenvold

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