IntelliJ-Idea'yı Hızlandırın


92

Scala geliştirme için intelliJ kullanıyorum ve geçen hafta 8 GB yeni RAM aldım , bu yüzden düşündüm: onu kullanma zamanı. Görev yöneticimi kontrol ettim ve ~ 250mb kullanarak intelliJ buldum . Tutulmadan sonra JVM seçeneklerinin ayarlanmasının hızı artırmada çok yardımcı olduğunu biliyordum, bu yüzden Google'da araştırdım ...

ve bunu OS X için buldum JVM seçeneğini hemen bulamadım, bu yüzden Xmx'te ince ayar yapmaya başladım. 1 GB'de artık başlamadığını fark ettim. İntelliJ java sürümünü kontrol ettim, güncel olmadığını ve 32bit olduğunu gördüm.

Bu nedenle, mevcut JDK'nızı ve 64 bitinizi kullanmak için bağlantınızı şu şekilde değiştirmeniz gerekir:

IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe

-e

IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT

ve "Başlama" ayarını yapın

Yarasa JDK_HOMEartık 64bit arıyor ve kullanıyor.

Şu anki VM Seçeneklerim ,

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

vardır

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

Bunun yerine -XX:+UseParallelGCkullanabilirsiniz -XX:+UseConcMarkSweepGC, hangisi

masaüstü uygulamaları için kabul edilen seçim, ancak son zamanlarda aktarım toplayıcısına geçtim. çünkü hızlı bir makine ve yeterince küçük bir yığınla, hızlı duraklamalarınız olur, daha fazla verim elde edersiniz ve parçalanmayla ilgili herhangi bir sorun yaşamazsınız (ijuma. #scala)

Değişiklikler:

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

Şimdilik bu seçeneklere bağlı kalacağım. Bununla ilgili deneyiminizi gerçekten bilmek isterim.

Size en uygun seçenekler hangileri? IntelliJ'i aracılığıyla çalıştırırken bu cmd penceresini nasıl gizlerim .bat? :)

Bu arada, işte zekayı ayarlamak için başka bir bağlantı . Temel olarak, s.20 / 21'de Windows geri yüklemesini ve sistem dizinleri için antivirüsü kapatmak için yazıyor .

IntelliJ'i hızlandırmanın bir başka yolu da intellij sistem klasörünü ramdrive'a koymaktır (teşekkürler OlegYch | h).

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

Bkz Win 7 64bit RAM Drive için Süper ya bu bir . 1 GB benim için iyi görünüyor.

Bir arkadaşımın bana verdiği bir başka ipucu da proje dizinlerini antivirüsünüzün dışında bırakmaktır (erişimde tarama)

Eclipse'in ayarlanmasıyla ilgili benzer gönderiler var:


6
64 bit sürümü çalıştırılırsa, VM seçenekleri şu idea64.exe.vmoptions
kaynaktan

Benzer bir soru ekledim, ancak 32 bit işletim sistemi (Windows 7) ve 3 GB RAM için: IntelliJ IDEA 13.1 -
önlenir

Bat dosyası yerine neden "idea64.exe" dosyasını doğrudan çalıştırmıyorsun? (en azından IntelliJ idea 11'de
idea64.exe var

Yanıtlar:


33

Bu kombinasyon, Mavericks'te çalışan Intellij13'ümde harika çalışıyor:

18 Temmuz 2017'de güncellendi :

# 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

Bu ayarı https://github.com/adben/config/blob/master/idea64.vmoptions adresinde güncel tutuyorum


3
orada çok sayıda kopya var
2014 saat

3
buna dikkat et -XX:+UseCompressedStrings, listendeki her şeyden, bu benim için kırdı, gerisi işe yaradı.
2015'i

2
Teşekkürler @adben, bilgisayarımda büyük ölçüde geliştirilmiş IJ. Ama kaldırmak zorunda MaxMetaspaceSize, MetaspaceSize, UseCompressedStringsonlar linux x86_64'lerde IJ 14 desteklenmez çünkü. UseCompressedOopsbenim için de çalışmıyor. İpucu: Hata mesajlarını görmek için komut satırından idea.sh
IJ'yi

1
-XX: + UseCompressedStrings, Win8 x64 ve IDEA 64-bit sürümünde benim için de kırdı. Her şey yolunda görünüyor.
minorgod

Bu dosyayı ilk etapta düzenlemek için, Eylem Bul açılır penceresi için Ctrl + Shift + A tuşlarına basın ve " Özel VM Seçeneklerini Düzenle " yazın. Makineniz için düzenleyebileceğiniz doğru dosyayı otomatik olarak oluşturacaktır.
Kevin Cooper

29

Benim için SSD sürücüsüne geçmek performansı çok geliştirdi (özellikle büyük projeler için).


Kesinlikle IJ performansını SSD ve bir HDD ile kıyaslayacağım!
Gaurav

23

Bir süre önce projemin derlenmesini hızlandırmanın yollarını arıyordum ve sonuç bu. Bu IntelliJ IDEA'nın kendisi için değildir, ancak büyük bir proje (yeniden) oluştururken çok yardımcı olacaktır ve sanırım diğer IDE'lerle de çalışacaktır. Ayrıca, Linux yaklaşımını anlattım, ancak Windows'un kendi RAM disk uygulamalarına sahip olduğundan eminim.

Derlemeyi hızlandırmanın en kolay yolu, derleme çıktısını RAM diske taşımaktır.

RAM disk kurulumu

Fstab'ı açın

$ sudo gedit /etc/fstab

( geditsenin yerine kullanabilirsin viveya ne istersen)

RAM diski bağlama noktasını ayarlayın

Sistemimin çeşitli yerlerinde RAM diskler kullanıyorum ve bunlardan biri şu /tmp, bu yüzden derleme çıktımı oraya koyacağım:

tmpfs /var/tmp tmpfs defaults 0 0

Bu durumda dosya sistemi boyutunuz sınırlandırılmayacaktır, ancak sorun değil, /tmpşu anki boyutum 73MB. Ancak RAM disk boyutunun çok büyüyeceğinden korkuyorsanız - boyutunu sınırlayabilirsiniz, örneğin:

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

Proje kurulumu

IntelliJ IDEA'da, Proje Yapısını açın ( Ctrl+Alt+Shift+Svarsayılan olarak), ardından Proje - 'Proje derleyici çıktısına' gidin ve RAM disk bağlama noktasına taşıyın:

/tmp/projectName/out

(Oraya gitmem projectNamegerekirse veya aynı anda birkaç projeyle çalışacaksam kolayca bulabilmek için klasör ekledim )

Ardından, Modüller'e gidin ve tüm modüllerinizde Yollar'a gidin ve 'Proje derleme çıktı yolunu devral' seçeneğini seçin veya özel derleme çıktı yolunu kullanmak istiyorsanız, 'Çıktı yolunu' ve 'Çıktı yolunu test edin' yaptığınız gibi değiştirin daha önce derleyici çıktısını projelendirmek için.

Hepsi bu kadar millet!

Not: Birkaç sayı: farklı durumlarda mevcut proje derlememin zamanı (yaklaşık):

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

PPS SSD disk kullanırsanız, derleme hızlanmasının yanı sıra diskinizdeki yazma işlemlerini de azaltırsınız, böylece SSD'nizin sonsuza dek mutlu yaşamasına yardımcı olur;)


Ram çözümü harika !! sadece performans için değil, aynı zamanda SSD ömrünü de korur. teşekkürler!
Mojtaba Asg

cachesVe indexklasörlerimi sembolik bağlantı yoluyla bir RAM diske taşıdım , RAM Sürücüsündeki Intellij IDEA önbelleği bunu sembolik bağlantılar olmadan yapmanın başka bir yolunu önerir, ancak daha büyük bir RAM diski gerektirir çünkü yalnızca önbellekleri ve dizin klasörlerini belirtemezsiniz. yol. Söylemeye gerek yok, herhangi bir arama / arama / bir sembole tıklamak artık anında veya neredeyse anında
ycomp

Bunu Windows 10'da nasıl yapabilirim?
Gaurav

@ycomp bunu nasıl yapacağınızı açıklar mısınız?
SergioLeone

Tam olarak hatırlayamıyorum ama muhtemelen değerinden daha fazla sorun. Hızlı olmasına rağmen. Bunu yapmakla ilgili herhangi bir özel sorun olup olmadığını hatırlayamıyorum .. Başka bir bilgisayara
geçtikten

20

İle ilgili olarak:

IntelliJ'i .bat üzerinden çalıştırırken bu cmd penceresini nasıl gizlerim?

"Başlat" komutunu ve javaw.exe'yi birlikte kullanın, bu nedenle, varsa:

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

şu şekilde değiştirin:

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 için yapabileceğiniz en yararlı şey , disk önbelleği için çok fazla boş belleğe sahip olmaktır . IntelliJ, işleme çalışmalarının çoğunu önbelleğe alınmış dosyalarda kaydeder. Bu, bol miktarda boş belleğiniz varsa iyi çalışır, ancak disk önbelleğiniz sınırlıysa, düzenli, uzun süreli duraklamalar görürsünüz.

Ben öneririm -XX:+UseConcMarkSweepGCziyade G1.

Dosya erişim gecikmesini en aza indirmek için dosyaların yerel kopyalarında da çalışıyorum.

BTW : Bulunduğum proje için, maksimum yığın 2 GB olarak ayarlanmış olmasına rağmen 24 GB ile 48 GB olan bir makinede çalışmak arasındaki farkı fark ettim;)


4
Benim için en önemli fark, durakladığında bunun GC'den kaynaklanmaması, daha çok diskteki verileri yeniden okumak zorunda olmasıdır.
Peter Lawrey

4
48 GB'lık bir makine ile 24 GB'lık bir makine arasındaki fark, büyük olasılıkla fazladan ram kullanılarak dosya sistemi / işletim sistemi düzeyinde önbelleğe alma işleminden kaynaklanmaktadır.
cdeszaq

4

Bazı denemeler yapılır ve GC aşağıdaki kombinasyonunun en iyi sonucu duraklar azaltmak için tespit ettik: -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50.

Ayrıca yığını çok büyük, 512 veya daha küçük yapmam benim için sorun değil. Aksi takdirde, dolduğunda, GC biraz zaman alan her şeyi yürümek zorunda kalacaktır.



2

Neden henüz bahsedilmediğinden emin değilim - etkinleştirebilirsiniz Power Save mode, bu da dahil olmak üzere birçok IJ arka plan etkinliğini kapatır Files Synchronization. Bazı makaleler, proje yapısı seçeneklerinde Dosya Eşitlemesini devre dışı bırakmanın mümkün olduğunu söylüyor (@ OJ278 tarafından yanıtlanan makale gibi), ancak bu seçeneği IJ 14'te bulamadım , ancak Power Save modedevre dışı bırakılmış gibi görünüyor.

Oldukça büyük bir kod tabanım var ( AOSP kaynak kodu), bu nedenle arka plan dosyaları senkronizasyonu nedeniyle HD etkinliği can sıkıcı ...


1

İntellij'in optimize edici eklentisini kullanabilirsiniz:

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

Eklenti ile şunları yapabilirsiniz:

  • Otomatik ayar sanal makine seçenekleri
  • Sınıf doğrulamasını devre dışı bırakın
  • Sistem önbelleklerini temizleyin
  • Harici derleme araçlarını yapılandırın
  • En son Oracle JDK'yı doğrulayın
  • Derlemeyi ve yeniden dağıtmayı atla

Neden olumsuz oy? soru intellij'i ayarlamakla ilgili ve bu bir çözüm
iberck

2
Ne yazık ki eklenti çekilmiş gibi görünüyor.
nilo de roock

1

Tarafından sağlanan cevap adben, makinemdeki performansı artırmak için çok yararlıdır. Bir Dzone makalesini okuduktan sonra onu biraz geçersiz kılsam da,

-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

Yukarıdaki konfigürasyonu kullanarak büyük projelerin performansını artırdılar ve projelerimiz için de kusursuz çalışıyorlar. Son olarak, kullanmayacağım tüm eklentileri devre dışı bıraktım ve bu da işleri iyileştiriyor.

Referans: https://dzone.com/articles/the-one-and-only-reason-to-customize-intellij-idea


0

Bu kombinasyonu kullandım ve ortamımda iyi çalışıyor

-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:+UseParNewGCSon CLion sürümlerine dahil etmeyin . Geçersiz seçenek.
Sandu Liviu Catalin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.