2012-09-27 21 views
12

मैं Grails 2.0 का उपयोग कर रहा हूं। मैं Grails 1.3.7 के तहत विकसित होता था लेकिन Grails 2.0 के तहत एक आवेदन चलाते समय प्रदर्शन बहुत धीमा है। एक पृष्ठ को दिखाने के लिए 30 सेकंड से अधिक समय लग सकता है और यह बहुत शर्मनाक और अनुत्पादक है।Grails 2.0 रन-एप बहुत धीमी प्रदर्शन

मैंने गुगल किया और मैंने पाया कि 2.0 में जीएसपी कुछ मामलों में 1.3.7 से 10 गुना धीमी है; ग्रीम ने समझाया कि देव मोड में जीएसपी को संभालने का एक नया तरीका है, लेकिन जब grails prod run-app को निष्पादित करते हैं तो मुझे लगभग एक ही समस्या होती है।

विकास प्रक्रिया को तेज करने के लिए मुझे क्या करना चाहिए? मैं बहुत अधिक समय खो रहा हूँ।

पुनश्च: मेरे GRAILS_OPTS रहे हैं "-server -Xmx600M -Xms600M -XX: MaxPermSize = 250 मी -Dfile.encoding = UTF-8 -Dserver.port = 9090"

+0

मैं बस 1.3.7 से 2.1.1 तक चला गया और मुझे कोई प्रदर्शन समस्या नहीं दिखाई दे रही है, बल्कि मुझे अपरिवर्तन दिखाई देता है।क्या आप 2.1.1 पर अपडेट कर सकते हैं। क्या आप अपने सभी कार्यों को बंद करने के बजाय विधियों के रूप में परिवर्तित कर सकते हैं और देख सकते हैं कि इससे मदद मिलती है या नहीं? – allthenutsandbolts

+0

VisualV के साथ अपने ऐप को प्रोफाइल करने का प्रयास करें। जब आप नहीं जानते कि कौन सा हिस्सा सुधारना है तो आप प्रदर्शन में सुधार नहीं कर सकते हैं। –

+0

यह मुख्य रूप से जीएसपी है जो बहुत धीमी है। संसाधन प्लगइन भी है जो कंसोल –

उत्तर

7

मैं के बारे में 20 मिनट पहले मेलिंग सूची पर एक छोटा सा घोषणा पोस्ट: http://grails.1312388.n4.nabble.com/GSP-Compilation-tt4632864.html#a4635595

यह समस्या तय किया गया था: http://jira.grails.org/browse/GRAILS-9423

नवीनतम 2.1.x स्नैपशॉट निर्माण के प्रदर्शन का परीक्षण करें।

इन

export GRAILS_OPTS="-server -noverify -XX:PermSize=256m 
-XX:MaxPermSize=256m -Xmx600M -Xms600m -XX:+UseParallelGC -Djava.net.preferIPv4Stack=true 
-Dsun.reflect.inflationThreshold=100000" 

मेरे लिए प्रयास करें, चाल उसी मूल्य का Xmx और XMS की स्थापना की और उसी मूल्य का PermSize और MaxPermSize स्थापित करने के लिए किया गया था। sun.reflect.inflationTreshold permgen के साथ मदद करता है। (http://jira.grails.org/browse/GRAILS-7878?focusedCommentId=66447&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-66447 स्पष्टीकरण के लिए ग्रेल्स जिरा में)

बीटीडब्ल्यू। मैंने 10 मिनट पहले इस मुद्दे को दायर किया: http://jira.grails.org/browse/GRAILS-9444 यदि यह दिलचस्प है, तो कृपया इस मुद्दे पर वोट दें।

+0

धन्यवाद में बहुत सारी नाक बनाता है .. ऐसा लगता है कि मैं 2.1 या 2.2 पर माइग्रेट कर चुका हूं? –

+0

एक और सवाल हम चल रहे थ्रेड नंबर को कम कर सकते हैं? जावा-मेलोडी प्लगइन के साथ मैं उनमें से अधिकतर 250 धागे देखता हूं और कभी भी इसका उपयोग नहीं किया जाएगा। यह एप्लिकेशन को धीमा कर देता है और बहुत मेमोरी लेता है। कोई उपाय ? –

+0

वर्तमान में 2.1.x पर जा रहा है। 2.0.x केवल महत्वपूर्ण फिक्सेस प्राप्त करता है और 2.1.x में 2.0.x से पहले भी बहुत सारे सुधार हैं। 2.0.x से जा रहा है -> 2.1.x बहुत बेकार है क्योंकि बहुत सारे मतभेद नहीं हैं। –

2

यह सुनिश्चित करने के लिए कि आप स्प्रिंग-लोडेड रीलोडिंग एजेंट के नवीनतम फ़िक्स का उपयोग कर रहे हैं, Grails 2.0.x के बजाय Grails 2.1.x का उपयोग करें। Grails 2.1.1 के लिए आप स्प्रिंग-लोडेड रीलोडिंग एजेंट को स्नैपशॉट संस्करण में अपग्रेड करना चाहते हैं।

आप से नवीनतम स्नैपशॉट प्राप्त कर सकते हैं: https://repo.springsource.org/snapshot/com/springsource/springloaded/springloaded-core/

वर्तमान में यह https://repo.springsource.org/snapshot/com/springsource/springloaded/springloaded-core/1.1.1.BUILD-SNAPSHOT/springloaded-core-1.1.1.BUILD-20120821.173635-2.jar है।

$ बदलें GRAILS_HOME/lib/com.springsource.springloaded/springloaded कोर/जार/डाउनलोड किया स्नैपशॉट साथ springloaded कोर-1.0.6.jar (समान फ़ाइल नाम springloaded कोर-1.0 के लिए स्नैपशॉट नाम बदलें। 6.jar)।

यह उत्तर जल्द ही पुराना हो जाएगा जैसे ही springloaded-core संस्करण 1.1.1 रिलीज़ हो जाता है।

3

रीयलोडिंग सुधारों के कारण विकास मोड के लिए Grails 2.x धीमी गति से 1.3.x है। यह स्प्रिंग-लोडेड रीलोडिंग एजेंट का उपयोग करता है जो जेरेबेल के समान है।

सुनिश्चित करें कि आपके विकास लैपटॉप में पर्याप्त मेमोरी (> 4 जीबी), एक एसएसडी और तेज आई 7 सीपीयू है।

एक हालिया लैपटॉप 16 जीबी मेमोरी & एक तेज एसएसडी के साथ प्राप्त करें और आप अब धीमे होने की सोच नहीं रहेंगे। मैं एक i7 श्रृंखला सीपीयू की भी सिफारिश करता हूं। वर्तमान में केवल $ 1200 खर्च होता है।

+0

ऐसा लगता है कि 2.1.1 बड़े पैमाने पर भूख लगी है। मैं 4 जीबी रैम के साथ i3 (विंडोज 64-बिट) लैपटॉप में हूं और जीजीटीएस का उपयोग -XMS2048m -Xmx2750m -XX: MaxPermSize = 512m के साथ कर रहा हूं। मेरा आवेदन विकास मोड में है। तो न्यूनतम 2.1.1 grails ऐप होस्ट करने के लिए आप किस कॉन्फ़िगरेशन का सुझाव देते हैं? – tusar

+3

4 जीबी मेमोरी? यह एक लुभावनी आवश्यकता है। – Tyler

+2

मैं एक सिंगल कोर वीपीएस पर एक दर्जन नोड.जेएस ऐप्स विकसित करता हूं जिसमें 1 जीबी रैम है, और एक सिंगल ग्रिल परियोजना को विकसित करने के लिए पूरी तरह से एक नया 8 जीबी क्वाड-कोर वीपीएस बनाना था! 2 जीबी अब तक पर्याप्त लगता है (फ्री-एम की जांच कर रहा है) लेकिन फिर भी, नोड की तुलना में ...... शुक्र है कि जब मैंने इसे पूरा किया तो मुझे इस ऐप को होस्ट करने की ज़रूरत नहीं है ... –