स्पीडअप इंटेलीज-आइडिया


92

मैं Scala विकास के लिए intelliJ का उपयोग कर रहा हूं और पिछले सप्ताह 8 जीबी का नया रैम मिला है , इसलिए मैंने सोचा: इसका उपयोग करने का समय। मैंने अपने कार्य प्रबंधक की जाँच की और ~ 250mb का उपयोग करके इंटेलीजे को पाया । ग्रहण से मुझे पता था कि जेवीएम विकल्पों को ट्विक करने से गति में सुधार करने में बहुत मदद मिली, इसलिए मैंने गुगली की ...

और ओएस एक्स के लिए यह एक मिला मुझे तुरंत जेवीएम विकल्प नहीं मिला, इसलिए मैंने एक्सएमएक्स को ट्विक करना शुरू कर दिया 1 जीबी पर, मुझे एहसास हुआ कि यह किसी भी अधिक शुरू नहीं करता है। मैंने intelliJ जावा संस्करण की जाँच की, यह पुराना और 32 बिट पाया।

तो अपने वर्तमान JDK और 64 बिट का उपयोग करने के लिए आपको अपने लिंक को इसमें से बदलना होगा:

IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe

सेवा

IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT

और "प्रारंभ" समायोजित करें

बल्ला JDK_HOMEअब 64 बिट का उपयोग करता है।

मेरे वर्तमान वीएम विकल्प , जो में स्थित हैं

...\IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe.vmoptions

कर रहे हैं

-Xms512m
-Xmx1024m
-XX:MaxPermSize=512m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC

इसके बजाय -XX:+UseParallelGC, आप उपयोग कर सकते हैं -XX:+UseConcMarkSweepGC, जो है

डेस्कटॉप ऐप्स के लिए स्वीकृत विकल्प, लेकिन मैं हाल ही में थ्रूपुट कलेक्टर में बदल गया हूं। क्योंकि एक तेज़ मशीन और एक छोटे से पर्याप्त ढेर के साथ, आपके पास त्वरित विराम, अधिक थ्रूपुट और विखंडन के साथ कोई समस्या नहीं है (ijuma। #scala)।

परिवर्तन:

-XX:+UseConcMarkSweepGC //removed
// removed, because not needed with the lastest JVM.
    -XX:+UnlockExperimentalVMOptions
    -XX:+DoEscapeAnalysis
    -XX:+UseCompressedOops

मैं अभी के लिए इन विकल्पों पर टिकूंगा। मैं वास्तव में इसके साथ आपके अनुभव को जानना चाहूंगा।

आपके लिए कौन सा विकल्प सबसे अच्छा है? IntelliJ चलाते समय मैं इस cmd विंडो को कैसे छिपाऊँ .bat? :)

वैसे, यहां इंटेलीज ट्यूनिंग के लिए एक और लिंक है । मूल रूप से यह p.20 / 21 पर सिस्टम डायरियों के लिए विंडोज़ रिस्टोर और एंटीवायरस को बंद करने के लिए कहता है ।

इंटेलीज को गति देने का एक और तरीका है कि इंटेलिज सिस्टम फोल्डर को रैमड्राइव पर रखा जाए (धन्यवाद ओलेग: एच)।

from idea.properties 
idea.system.path=${idea.home}/.IntelliJIdea/system

सुपर 7 64 बिट रैम ड्राइव या इस एक के लिए सुपरयुसर देखें । 1 जीबी मेरे लिए ठीक लगता है।

एक और संकेत एक दोस्त ने मुझे दिया है जो आपके एंटीवायरस से प्रोजेक्ट निर्देशिकाओं को बाहर करने के लिए है (एक्सेस पर स्कैन करें)

ट्यूनिंग ग्रहण के संबंध में समान पोस्ट हैं:


6
यदि 64 बिट संस्करण चलाया जाता है, तो वीएम विकल्प को पढ़ने के लिए जा रहा हैidea64.exe.vmoptions
अरनौद पी।

मैंने एक समान प्रश्न जोड़ा, लेकिन एक 32-बिट ओएस (विंडोज 7) और 3 जीबी रैम के लिए: इंटेलीजे आईडीईए 13.1 -
जाए

.Bat फ़ाइल के माध्यम से सीधे "idea64.exe" क्यों नहीं चलाया जाता है? (कम से कम IntelliJ विचार 11 में idea64.exe है?
jbarrameda

जवाबों:


32

यह संयोजन Mavericks में चल रहे मेरे Intellij13 पर बहुत अच्छा काम करता है:

अपडेटेड Jul 18, 2017 :

# custom IntelliJ IDEA VM options

-ea
-server
-Xms2G
-Xmx4096M
-Xss2m
-XX:MaxMetaspaceSize=2G
-XX:ReservedCodeCacheSize=1G
-XX:MetaspaceSize=512m
-XX:+UseConcMarkSweepGC
-XX:+DoEscapeAnalysis
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:+UnlockExperimentalVMOptions
-Djava.net.preferIPv4Stack=true
-Dsun.io.useCanonCaches=false
-XX:LargePageSizeInBytes=256m
-XX:+UseCodeCacheFlushing
-XX:ParallelGCThreads=8
-XX:+DisableExplicitGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+PrintGCDetails
-XX:+PrintFlagsFinal
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:CMSInitiatingOccupancyFraction=60
-XX:+CMSClassUnloadingEnabled
-XX:+CMSParallelRemarkEnabled
-XX:+UseAdaptiveGCBoundary
-XX:+UseSplitVerifier
-XX:CompileThreshold=10000
-XX:+OptimizeStringConcat
-XX:+UseStringCache
-XX:+UseFastAccessorMethods
-XX:+UnlockDiagnosticVMOptions
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseCompressedOops
-XX:-OmitStackTraceInFastThrow
-Dawt.useSystemAAFontSettings=lcd

-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine

मैं इस सेटिंग को https://github.com/adben/config/blob/master/idea64.vmise में अपडेट रखता हूं


3
आप वहाँ में नकल की है
vach

3
इस एक के साथ सावधान रहें -XX:+UseCompressedStrings, आपकी सूची में सभी से बाहर, इसने मेरे लिए इसे तोड़ दिया, बाकी ने काम किया।
बम

2
धन्यवाद @adben, यह मेरे पीसी पर IJ में बहुत सुधार हुआ है। लेकिन मैं दूर करने के लिए किया था MaxMetaspaceSize, MetaspaceSize, UseCompressedStringsक्योंकि वे linux x86_64 पर IJ 14 में समर्थित नहीं हैं। UseCompressedOopsया तो मेरे लिए काम नहीं करेगा। सुझाव: त्रुटि संदेश दिखाई दें कमांड लाइन से चलाने IJ, लिनक्स पर यह हैidea.sh
Mixaz

1
-XX: + UseCompressedStrings ने इसे मेरे लिए Win8 x64 और IDEA 64-बिट संस्करण पर भी तोड़ दिया। बाकी सब ठीक लगता है।
माइनॉरॉड

इस फ़ाइल को पहली बार संपादित करने के लिए, ढूँढें क्रिया पॉपअप के लिए बस Ctrl + Shift + A दबाएं और " कस्टम वीएम विकल्प संपादित करें " टाइप करें । यह स्वचालित रूप से आपकी मशीन के लिए सही फ़ाइल बनाएगा जिसे आप संपादित कर सकते हैं।
केविन कूपर

28

मेरे लिए SSD- ड्राइव में सुधार ने प्रदर्शन में बहुत सुधार किया (विशेषकर बड़ी परियोजनाओं के लिए)।


मैं निश्चित रूप से SSD और एक HDD के साथ IJ प्रदर्शन को बेंचमार्क करने जा रहा हूँ!
गौरव

22

कुछ समय पहले मैं अपनी परियोजना के संकलन को गति देने के तरीकों की तलाश कर रहा था और इसका परिणाम है। यह खुद IntelliJ IDEA के लिए नहीं है, लेकिन एक बड़ी परियोजनाओं के निर्माण में (बहुत) मदद करेगा और मुझे लगता है कि यह किसी अन्य IDE के साथ भी काम करेगा। इसके अलावा, मैंने लिनक्स दृष्टिकोण का वर्णन किया है, लेकिन मुझे यकीन है कि विंडोज में स्वयं के रैम-डिस्क कार्यान्वयन हैं।

संकलन को गति देने का सबसे आसान तरीका रैम आउटपुट में संकलन आउटपुट को स्थानांतरित करना है।

रैम डिस्क सेटअप

खुला हुआ फस्साब

$ sudo gedit /etc/fstab

(इसके बजाय geditआप उपयोग कर सकते हैं viया आपको जो पसंद है)

RAM डिस्क माउंट बिंदु सेट करें

मैं अपने सिस्टम में कई स्थानों पर RAM डिस्क का उपयोग कर रहा हूं, और उनमें से एक है /tmp, इसलिए मैं अपना कंपाइल आउटपुट वहां डालूंगा:

tmpfs /var/tmp tmpfs defaults 0 0

इस स्थिति में आपका फाइलसिस्टम का आकार बाध्य नहीं होगा, लेकिन यह ठीक है, मेरा /tmpआकार अभी 73 एमबी है। लेकिन अगर आपको डर है कि रैम डिस्क का आकार बहुत बड़ा हो जाएगा - आप इसे आकार में सीमित कर सकते हैं, जैसे:

tmpfs /var/tmp tmpfs defaults,size=512M 0 0

प्रोजेक्ट सेटअप

IntelliJ IDEA में, प्रोजेक्ट स्ट्रक्चर खोलें ( Ctrl+Alt+Shift+Sडिफ़ॉल्ट रूप से), फिर प्रोजेक्ट - 'प्रोजेक्ट कंपाइलर आउटपुट' पर जाएँ और इसे RAM डिस्क माउंट पॉइंट पर ले जाएँ:

/tmp/projectName/out

( projectNameयदि मुझे वहां पहुंचने की आवश्यकता हो तो आसानी से खोजने के लिए मैंने फ़ोल्डर जोड़ा है या एक ही समय में कई परियोजनाओं के साथ काम करूंगा)

फिर, मॉड्यूल पर जाएं, और आपके सभी मॉड्यूल पाथ पर जाएं और 'इनहेरिट प्रोजेक्ट कंपाइल आउटपुट पाथ' का चयन करें या, यदि आप कस्टम कंपाइल आउटपुट पथ का उपयोग करना चाहते हैं, तो 'आउटपुट पथ' और 'टेस्ट आउटपुट पथ' को संशोधित करें। इससे पहले संकलक उत्पादन परियोजना के लिए।

बस आज के लिए इतना ही!

पुनश्च कुछ संख्या: विभिन्न मामलों में मेरी वर्तमान परियोजना संकलन का समय (लगभग):

HDD:     80s
SSD:     30s
SSD+RAM: 20s

PPS यदि आप SSD डिस्क का उपयोग करते हैं, तो संकलन गति के अलावा आप अपनी डिस्क पर लिखने के संचालन को कम कर देंगे, इसलिए यह आपके SSD को कभी भी खुशी से जीने में मदद करेगा;)


राम समाधान महान !! न केवल प्रदर्शन के लिए, बल्कि SSD के जीवन काल की रक्षा भी करें। धन्यवाद!
मोजतबा असग

मैंने अपने cachesऔर indexफ़ोल्डरों को प्रतीकात्मक लिंक के माध्यम से एक रैम डिस्क में स्थानांतरित कर दिया , रैम ड्राइव में Intellij IDEA कैश , प्रतीकात्मक लिंक के बिना इसे करने का एक और तरीका बताता है, हालांकि इसके लिए एक बड़ी रैम डिस्क की आवश्यकता होती है क्योंकि आप केवल कैश और इंडेक्स फ़ोल्डर निर्दिष्ट नहीं कर सकते हैं मार्ग। कहने की जरूरत नहीं है, किसी भी खोज / खोज / प्रतीक पर क्लिक करना तत्काल या लगभग तत्काल है
ycomp

यह विंडोज़ 10 पर कैसे करें?
गौरव

@ क्या आप ऐसा करने के बारे में विस्तार से बता सकते हैं?
सर्जियोलाइन

मैं विशेष रूप से याद नहीं कर सकता, लेकिन यह शायद अधिक परेशानी की तुलना में इसके लायक है। हालांकि यह तेजी से दुष्ट था। मुझे याद नहीं है कि क्या करने से जुड़ी कोई विशेष समस्याएँ थीं .. मैंने एक बार दूसरे पीसी में प्रवास करने से रोक दिया
ycomp

20

के बारे में:

मैं .bat के माध्यम से intelliJ चलाते समय इस cmd विंडो को कैसे छिपाऊँ?

यदि आपके पास 'स्टार्ट' कमांड और javaw.exe का उपयोग करें, तो:

SET JAVA_EXE=%IDEA_JDK%\jre\bin\java.exe
...
"%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*

इसे बदलें:

SET JAVA_EXE=%IDEA_JDK%\jre\bin\javaw.exe
...
start "Intellij IDEA" /b "%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*

19

IntelliJ के लिए सबसे उपयोगी चीज जो आप कर सकते हैं वह है डिस्क कैशिंग के लिए बहुत सारी मुफ्त मेमोरी । IntelliJ कैश्ड फ़ाइलों में अपने प्रसंस्करण कार्य का एक बहुत बचाता है। यदि आपके पास बहुत सारी मुफ्त मेमोरी है, तो यह अच्छी तरह से काम करता है, लेकिन यदि आपकी डिस्क कैश सीमित है, तो आप नियमित, लंबे समय तक चलने वाले ठहराव को देखेंगे।

मैं इसके -XX:+UseConcMarkSweepGCबजाय सुझाव देना चाहूंगा G1

मैं फ़ाइल एक्सेस विलंब को कम करने के लिए फ़ाइलों की स्थानीय प्रतियां भी काम करता हूं।

BTW : मैं जिस प्रोजेक्ट पर हूं, उसके लिए मैंने 24 जीबी के साथ मशीन पर काम करने और 48 जीबी के साथ एक के बीच का अंतर देखा, भले ही अधिकतम ढेर 2 जीबी पर सेट हो;)


4
मेरे लिए, सबसे महत्वपूर्ण अहसास यह है कि जब यह रुकता है, तो यह जीसी के कारण नहीं होता है, बल्कि डिस्क से डेटा को फिर से पढ़ने के लिए होता है।
पीटर लॉरी

3
अतिरिक्त रैम का उपयोग करके फाइलसिस्टम / ओएस-लेवल कैशिंग के कारण 48GB मशीन और 24GB मशीन के बीच का अंतर होने की संभावना है।
cdeszaq

4

मैंने कुछ प्रयोग किए हैं, और पाया कि जीसी को कम करने के लिए निम्नलिखित संयोजन सबसे अच्छा काम करता है -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50:।

मैं ढेर को बहुत बड़ा नहीं बनाऊँगा, 512 या उससे भी छोटा मेरे लिए ठीक है। अन्यथा जब यह पूर्ण हो जाता है तो जीसी को यह सब चलना होगा जिसमें कुछ समय लगता है।


2

आप यहां अच्छे टिप्स पा सकते हैं। उदाहरण के लिए, IDEA से दूसरे ऐप में स्विच करने की गति और इसके विपरीत फीचर को "फाइल को सिंक्रोनाइज़ करना बंद करें" को चालू करने के बाद काफी सुधार हुआ।

http://hamletdarcy.blogspot.com/2008/02/10-tips-to-increase-intellij-idea.html


2

निश्चित नहीं है कि इसका उल्लेख अभी तक क्यों नहीं किया गया है - आप सक्षम कर सकते हैं Power Save mode, जो कई आईजे पृष्ठभूमि गतिविधियों को बंद कर देता है , जिसमें शामिल हैं Files Synchronization। कुछ लेखों में कहा गया है कि प्रोजेक्ट संरचना विकल्पों में फ़ाइलें सिंक को अक्षम करना संभव है (जैसे @ OJ278 द्वारा उत्तर में लेख), लेकिन मैं IJ 14 में इस विकल्प को खोजने में सक्षम नहीं था , लेकिन Power Save modeइसे अक्षम करने के लिए लगता है।

मेरे पास एक बहुत बड़ा कोड आधार ( AOSP स्रोत कोड) है, इसलिए पृष्ठभूमि फ़ाइलों के सिंक्रनाइज़ेशन के कारण HD गतिविधि कष्टप्रद है ...


1

आप intellij के ऑप्टिमाइज़र प्लगइन का उपयोग कर सकते हैं:

https://zeroturnaround.com/free/optimizer-for-intellij-idea/

प्लगइन के साथ आप कर सकते हैं:

  • स्वचालित ट्यून वर्चुअल मशीन विकल्प
  • वर्ग सत्यापन अक्षम करें
  • सिस्टम कैश साफ करें
  • बाहरी बिल्ड टूल कॉन्फ़िगर करें
  • नवीनतम Oracle JDK की पुष्टि करें
  • निर्माण और पुनर्वसन छोड़ें

वोट डाउन क्यों? सवाल ट्यूनिंग
इंटेलीज के

2
अफसोस की बात है कि प्लगइन खींचा हुआ लगता है।
nilo de roock

1

adbenमेरे मशीन में प्रदर्शन को बेहतर बनाने के लिए जो उत्तर दिया गया है वह बहुत उपयोगी है। हालाँकि मैंने Dzone लेख पढ़ने के बाद इसे थोड़ा उखाड़ दिया,

-server
-Xms2g
-Xmx2g
-XX:NewRatio=3
-Xss16m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:ConcGCThreads=4
-XX:ReservedCodeCacheSize=240m
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-ea

उन्होंने उपरोक्त कॉन्फ़िगरेशन का उपयोग करके बड़ी परियोजनाओं के प्रदर्शन में सुधार किया और हमारी परियोजनाओं के लिए भी निर्दोष रूप से काम करते हैं। अंत में, मैंने उन सभी प्लगइन्स को निष्क्रिय कर दिया, जिनका मैं उपयोग नहीं करूंगा और इससे चीजों में भी सुधार होता है।

संदर्भ: https://dzone.com/articles/the-one-and-only-reason-to-customize-intell-seaea


0

मैंने इस संयोजन का उपयोग किया और यह मेरे वातावरण में ठीक काम कर रहा है

-server
-Xms2048m
-Xmx2048m
-XX:NewSize=512m
-XX:MaxNewSize=512m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:+UseParNewGC
-XX:ParallelGCThreads=4
-XX:MaxTenuringThreshold=1
-XX:SurvivorRatio=8
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:+CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=65
-XX:+CMSScavengeBeforeRemark
-XX:+UseCMSInitiatingOccupancyOnly
-XX:ReservedCodeCacheSize=64m
-XX:-TraceClassUnloading
-ea
-Dsun.io.useCanonCaches=false

-XX:+UseParNewGCहाल के सीएलएएन संस्करणों के साथ शामिल न करें । अमान्य विकल्प।
सैंडू लिविउ कैटालिन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.