gradle
ग्रेड प्रदर्शन
खोज…
एक प्रोफ़ाइल का निर्माण
इससे पहले कि आप प्रदर्शन के लिए अपने ग्रैड बिल्ड को ट्यून करना शुरू करें, आपको एक आधार रेखा स्थापित करनी चाहिए और यह पता लगाना चाहिए कि बिल्ड के किन हिस्सों में सबसे अधिक समय लग रहा है। ऐसा करने के लिए, आप अपने ग्रेड कमांड में --profile
तर्क जोड़कर अपनी बिल्ड प्रोफाइल कर सकते हैं:
gradle --profile
./gradlew --profile
बिल्ड पूर्ण होने के बाद, आपको निर्माण के लिए एक HTML प्रोफ़ाइल रिपोर्ट दिखाई देगी ./build/reports/profile/
, इस तरह दिख रहा है:
सारांश के बगल में स्थित टैब पर क्लिक करके, आप यह देख सकते हैं कि समय कहाँ व्यतीत होता है।
डिमांड पर कॉन्फ़िगर करें
यदि आपकी बिल्ड की रूपरेखा को कॉन्फ़िगर करने वाली परियोजनाओं में महत्वपूर्ण समय व्यतीत होता है, तो कॉन्फिग ऑन डिमांड विकल्प आपके प्रदर्शन में सुधार कर सकता है।
आप $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
डिफ़ॉल्ट रूप से) का ~/.gradle/gradle.properties
करके, और org.gradle.configureondemand
सेट करके डिमांड मोड को कॉन्फ़िगर कर सकते हैं।
org.gradle.configureondemand=true
केवल किसी विशिष्ट प्रोजेक्ट के लिए इसे सक्षम करने के लिए, उस प्रोजेक्ट के gradle.properties
फ़ाइल को इसके बजाय संपादित करें।
यदि कॉन्फ़िगर ऑन डिमांड सक्षम है, तो सामने की सभी परियोजनाओं को कॉन्फ़िगर करने के बजाय, ग्रैडल केवल उन परियोजनाओं को कॉन्फ़िगर करेगा जो कार्य चलाने के लिए आवश्यक हैं।
मांग मोड पर कॉन्फ़िगरेशन केवल उन परियोजनाओं को कॉन्फ़िगर करने का प्रयास करता है जो अनुरोध किए गए कार्यों के लिए प्रासंगिक हैं, अर्थात यह केवल उन परियोजनाओं की
build.gradle
फ़ाइल निष्पादित करता है जो बिल्ड में भाग ले रहे हैं। इस तरह, एक बड़े मल्टी-प्रोजेक्ट बिल्ड का कॉन्फ़िगरेशन समय कम किया जा सकता है। लंबी अवधि में, यह मोड डिफ़ॉल्ट मोड बन जाएगा, संभवतः ग्रैड बिल्ड निष्पादन के लिए एकमात्र मोड।
ट्यूनिंग के लिए ट्यूनिंग JVM मेमोरी यूसेज पैरामीटर्स
आप $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
डिफ़ॉल्ट रूप से), और org.gradle.jvmargs
सेटिंग करके संपादन के लिए उपयोग की जाने वाली मेमोरी उपयोग सीमाएँ (या अन्य JVM तर्क) सेट कर सकते हैं या ~/.gradle/gradle.properties
org.gradle.jvmargs
केवल किसी विशिष्ट प्रोजेक्ट के लिए इन सीमाओं को कॉन्फ़िगर करने के लिए, उस प्रोजेक्ट के gradle.properties
फ़ाइल को इसके बजाय संपादित करें।
ग्रेडेल बनाता है और ग्रेडल डेमॉन के लिए डिफ़ॉल्ट मेमोरी उपयोग सेटिंग्स हैं:
org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m
यह 1GB की सामान्य अधिकतम मेमोरी आवंटन (ढेर आकार) और 256MB की स्थायी "आंतरिक" वस्तुओं के लिए अधिकतम मेमोरी आवंटन की अनुमति देता है। जब ये आकार पहुँच जाते हैं, तो गारबेज कलेक्शन होता है, जो प्रदर्शन को काफी कम कर सकता है।
मान लें कि आपके पास स्मृति को खाली करने के लिए है, तो आप इन्हें आसानी से दोहरा सकते हैं:
org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m
ध्यान दें कि आप XX:MaxPermSize
बढ़ने से लाभ देखना बंद कर देंगे XX:MaxPermSize
जब Xmx
बढ़ता है तो फायदेमंद होने की तुलना में जल्द ही XX:MaxPermSize
।
ग्रैडल डेमन का उपयोग करें
आप अपने बिल्ड के प्रदर्शन को बेहतर बनाने के लिए ग्रैडल डेमन को सक्षम कर सकते हैं।
ग्रैडल डेमॉन ग्रेडेड फ्रेमवर्क को इनिशियलाइज़ और रनिंग रखता है, और परफॉर्मेंस को बेहतर बनाने के लिए मेमोरी में प्रोजेक्ट डेटा को कैश करता है।
सिंगल बिल्ड के लिए
एक भी निर्माण के लिए Daemon सक्षम करने के लिए, तो आप बस पारित कर सकते हैं --daemon
अपने को तर्क gradle
आदेश या Gradle आवरण स्क्रिप्ट।
gradle --daemon
./gradlew --daemon
एक परियोजना के सभी बिल्ड के लिए
किसी प्रोजेक्ट के सभी बिल्ड के लिए डेमन को सक्षम करने के लिए, आप इसे जोड़ सकते हैं:
org.gradle.daemon=true
आपके प्रोजेक्ट के gradle.properties
फ़ाइल में।
ऑल बिल्ड्स के लिए
अपने सिस्टम पर आपके उपयोगकर्ता खाते द्वारा किए गए प्रत्येक निर्माण के लिए डिफ़ॉल्ट रूप से ग्रेडल डेमन को सक्षम करने के लिए, $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
) डिफ़ॉल्ट रूप से संपादित करें और इस पंक्ति को जोड़ें:
org.gradle.daemon=true
आप इसे Mac / Linux / * nix सिस्टम पर एकल कमांड में भी कर सकते हैं:
touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties
या विंडोज पर:
(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")
डेमन को निष्क्रिय करना
आप का उपयोग कर एक विशिष्ट निर्माण के लिए Daemon निष्क्रिय कर सकते हैं --no-daemon
तर्क एक विशेष परियोजना के लिए स्पष्ट रूप से निर्धारित करके, या अक्षम करें यह org.gradle.daemon=false
परियोजना के दशक में gradle.properties
फ़ाइल।
डेमॉन को रोकना
यदि आप मैन्युअल रूप से एक डेमन प्रक्रिया को रोकना चाहते हैं, तो आप या तो अपने ऑपरेटिंग सिस्टम टास्क मैनेजर के माध्यम से प्रक्रिया को मार सकते हैं या gradle --stop
कमांड चला सकते हैं। --stop
स्विच --stop
से अनुरोध करता है कि कमांड चलाने के लिए इस्तेमाल किए जाने वाले एक ही ग्रैडल संस्करण के सभी डेमन प्रक्रियाएं, खुद को समाप्त करें। आमतौर पर, डेमॉन प्रक्रियाएं अपने आप को * 3 घंटे की निष्क्रियता या कम के बाद * समाप्त कर देंगी।
ग्रेडेल समानांतर बनाता है
ग्रैड केवल प्रोजेक्ट संरचना की परवाह किए बिना डिफ़ॉल्ट रूप से एक समय में एक कार्य चलाएगा। - --parallel
स्विच का उपयोग करके, आप --parallel
को स्वतंत्र --parallel
निष्पादित करने के लिए बाध्य कर सकते हैं - जिनके पास एक दूसरे के बीच कोई निहित या स्पष्ट परियोजना निर्भरता नहीं है - समानांतर में, यह एक ही समय में कई कार्यों को चलाने की अनुमति देता है जब तक कि उन कार्यों में हैं विभिन्न परियोजनाओं।
समानांतर मोड में एक परियोजना बनाने के लिए:
gradle build --parallel
आप प्रोजेक्ट की gradle.properties फ़ाइल में निम्न सेटिंग जोड़कर किसी प्रोजेक्ट के लिए डिफ़ॉल्ट को समानांतर बना सकते हैं:
org.gradle.parallel=true
नवीनतम ग्रेड संस्करण का उपयोग करें
ग्रैडल बिल्ड के विभिन्न पहलुओं के प्रदर्शन को बेहतर बनाने पर ग्रेडल टीम नियमित रूप से काम करती है। यदि आप ग्रेडल के पुराने संस्करण का उपयोग कर रहे हैं, तो आप उस कार्य के लाभों को याद कर रहे हैं। किस प्रकार का प्रभाव पड़ता है यह देखने के लिए ग्रेडल के नवीनतम संस्करण में अपग्रेड करने का प्रयास करें। ऐसा करना कम जोखिम है क्योंकि ग्रेडल के मामूली संस्करणों के बीच बहुत कम चीजें टूटती हैं।
ग्रेडल रैपर के लिए गुण फ़ाइल को आपके प्रोजेक्ट फ़ोल्डर में gradle/wrapper/
नीचे पाया जा सकता है और इसे gradle-wrapper.properties
कहा जाता है। उस फ़ाइल की सामग्री इस तरह दिख सकती है:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-X.X.X.zip
आप मैन्युअल रूप से संस्करण संख्या XXX
(वर्तमान संस्करण) को YYY
(नए संस्करण) में बदल सकते हैं और अगली बार जब आप आवरण चलाते हैं, तो नया संस्करण स्वचालित रूप से डाउनलोड होता है।