Używam intelliJ do rozwoju Scali i dostałem 8 GB nowej pamięci RAM w zeszłym tygodniu, więc pomyślałem: czas go użyć. Sprawdziłem menedżera zadań i znalazłem intelliJ przy użyciu ~ 250mb . Z zaćmienia wiedziałem, że poprawianie opcji JVM bardzo pomogło w poprawie szybkości, więc wyszukałem w Google ...
i znalazłem ten dla OS X. Nie mogłem od razu znaleźć opcji JVM, więc zacząłem ulepszać Xmx. Przy 1 GB zdałem sobie sprawę, że już się nie uruchamia. Sprawdziłem wersję intelliJ java, stwierdziłem, że jest nieaktualna i 32-bitowa.
Aby więc używać obecnego JDK i wersji 64-bitowej , musisz zmienić swój link na z:
IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe
do
IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT
i dostosuj „Rozpocznij za”
Nietoperz szuka JDK_HOME
teraz i używa 64-bitowego.
Moje aktualne opcje maszyn wirtualnych , które znajdują się w
...\IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe.vmoptions
są
-Xms512m
-Xmx1024m
-XX:MaxPermSize=512m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC
Zamiast tego -XX:+UseParallelGC
możesz użyć -XX:+UseConcMarkSweepGC
, który jest
zaakceptowany wybór dla aplikacji klasycznych, ale ostatnio zmieniłem na kolektor przepustowości. ponieważ z szybką maszyną i wystarczająco małą stertą masz szybkie przerwy, większą przepustowość i brak problemów z fragmentacją (ijuma. #scala)
Zmiany:
-XX:+UseConcMarkSweepGC //removed
// removed, because not needed with the lastest JVM.
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
Na razie będę się trzymać tych opcji. Bardzo chciałbym poznać Twoje doświadczenia z tym związane.
Które opcje są dla Ciebie najlepsze? Jak ukryć to okno cmd podczas uruchamiania intelliJ przez .bat
? :)
Przy okazji, oto kolejny link do tuningu intelliJ . Zasadniczo na str. 20/21 jest napisane, aby wyłączyć przywracanie systemu Windows i oprogramowanie antywirusowe dla katalogów systemowych.
Innym sposobem na przyspieszenie działania intelliJ jest umieszczenie folderu systemowego intellij na ramdrive (dzięki OlegYch | h).
from idea.properties
idea.system.path=${idea.home}/.IntelliJIdea/system
Zobacz Superuser for Win 7 64bit RAM Drive lub ten . Wydaje mi się, że 1 GB jest w porządku.
Inną wskazówką, którą dał mi przyjaciel, jest wykluczenie katalogów projektów z Twojego programu antywirusowego (skanowanie przy dostępie)
Istnieją podobne posty dotyczące tuningu Eclipse:
źródło
idea64.exe.vmoptions
Odpowiedzi:
Ta kombinacja działa świetnie na moim Intellij13 działającym w Mavericks:
Zaktualizowano 18 lipca 2017 r . :
# 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
Aktualizuję to ustawienie na https://github.com/adben/config/blob/master/idea64.vmoptions
źródło
-XX:+UseCompressedStrings
, ze wszystkich na twojej liście, to zepsuło mi to, reszta zadziałała.MaxMetaspaceSize
,MetaspaceSize
,UseCompressedStrings
ponieważ nie są one obsługiwane w IJ 14 na Linux x86_64.UseCompressedOops
dla mnie też nie działa. Wskazówka: uruchom IJ z wiersza poleceń, aby zobaczyć komunikaty o błędach, widea.sh
Dla mnie przejście na dysk SSD znacznie poprawiło wydajność (szczególnie w przypadku dużych projektów).
źródło
Jakiś czas temu szukałem sposobów na przyspieszenie kompilacji mojego projektu i to jest rezultat. To nie jest dla samego IntelliJ IDEA, ale bardzo pomoże przy (ponownym) budowaniu dużych projektów i, jak sądzę, będzie działać również z każdym innym IDE. Opisałem również podejście do Linuksa, ale jestem pewien, że Windows ma własne implementacje dysków RAM.
Najłatwiejszym sposobem na przyspieszenie kompilacji jest przeniesienie wyjścia kompilacji na dysk RAM.
Konfiguracja dysku RAM
Otwórz fstab
(zamiast
gedit
ciebie możesz użyćvi
lub cokolwiek chcesz)Skonfiguruj punkt montowania dysku RAM
Używam dysków RAM w kilku miejscach w moim systemie, a jednym z nich jest
/tmp
, więc po prostu umieszczę tam dane wyjściowe kompilacji:tmpfs /var/tmp tmpfs defaults 0 0
W tym przypadku rozmiar twojego systemu plików nie będzie ograniczony, ale jest w porządku, mój
/tmp
rozmiar w tej chwili to 73 MB. Ale jeśli obawiasz się, że rozmiar dysku RAM stanie się zbyt duży - możesz ograniczyć jego rozmiar, np .:tmpfs /var/tmp tmpfs defaults,size=512M 0 0
Konfiguracja projektu
W IntelliJ IDEA otwórz Project Structure (
Ctrl+Alt+Shift+S
domyślnie), a następnie przejdź do Project - „Project compiler output” i przenieś go do punktu montowania dysku RAM:(Dodałem
projectName
folder, aby łatwo go znaleźć, jeśli muszę się tam dostać lub będę pracować z kilkoma projektami w tym samym czasie)Następnie przejdź do Moduły i we wszystkich modułach przejdź do Ścieżki i wybierz „Dziedzicz ścieżkę wyjściową kompilacji projektu” lub, jeśli chcesz użyć niestandardowej ścieżki wyjściowej kompilacji, zmodyfikuj „Ścieżkę wyjściową” i „Ścieżkę wyjściową testową” tak, jak to zrobiłeś do projektu wyjścia kompilatora wcześniej.
To wszystko, ludzie!
PS Kilka liczb: czas kompilacji mojego obecnego projektu w różnych przypadkach (w przybliżeniu):
HDD: 80s SSD: 30s SSD+RAM: 20s
PPS Jeśli używasz dysku SSD, oprócz przyspieszenia kompilacji zredukujesz operacje zapisu na dysku, dzięki czemu Twój dysk SSD będzie żył długo i szczęśliwie;)
źródło
caches
iindex
foldery za pomocą łącza symbolicznego na dysk RAM, pamięć podręczna Intellij IDEA na dysku RAM sugeruje inny sposób zrobienia tego bez dowiązań symbolicznych, jednak wymagałoby to większego dysku RAM, ponieważ nie można określić tylko pamięci podręcznych i folderów indeksowych, które sposób. Nie trzeba dodawać, że każde wyszukiwanie / wyszukiwanie / klikanie symbolu jest natychmiastowe lub prawie natychmiastoweJeżeli chodzi o:
Użyj jednocześnie polecenia „start” i javaw.exe, więc jeśli masz:
SET JAVA_EXE=%IDEA_JDK%\jre\bin\java.exe ... "%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*
zmień to na:
SET JAVA_EXE=%IDEA_JDK%\jre\bin\javaw.exe ... start "Intellij IDEA" /b "%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*
źródło
Najbardziej użyteczną rzeczą, jaką możesz zrobić dla IntelliJ, jest posiadanie dużej ilości wolnej pamięci do buforowania dysku . IntelliJ oszczędza dużo swojej pracy przetwarzania w plikach buforowanych. Działa to dobrze, jeśli masz dużo wolnej pamięci, ale jeśli pamięć podręczna dysku jest ograniczona, zobaczysz regularne, długotrwałe przerwy.
Sugerowałbym
-XX:+UseConcMarkSweepGC
raczej niżG1
.Pracuję również na lokalnych kopiach plików, aby zminimalizować opóźnienia dostępu do plików.
BTW : W przypadku projektu, na którym jestem, zauważyłem różnicę między pracą na maszynie z 24 GB i taką z 48 GB, mimo że maksymalny stert jest ustawiony na 2 GB;)
źródło
Zrobiłem kilka eksperymentów, a okazało się, że aby zmniejszyć GC wstrzymuje następująca kombinacja działa najlepiej:
-XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50
.Nie zrobiłbym też zbyt dużego stosu, 512 lub nawet mniejszy jest dla mnie OK. W przeciwnym razie, gdy stanie się pełny, GC będzie musiał to wszystko przejść, co zajmie trochę czasu.
źródło
Tutaj znajdziesz dobre wskazówki. Na przykład szybkość przełączania się z IDEA do innej aplikacji i odwrotnie uległa znacznej poprawie po wyłączeniu funkcji „Wyłącz synchronizację plików”.
http://hamletdarcy.blogspot.com/2008/02/10-tips-to-increase-intellij-idea.html
źródło
Nie wiem, dlaczego jeszcze o tym nie wspomniano - możesz włączyć
Power Save mode
, co wyłącza wiele działań IJ w tle, w tymFiles Synchronization
. Niektóre artykuły mówią, że można wyłączyć synchronizację plików w opcjach struktury projektu (jak artykuł w odpowiedzi @ OJ278), ale nie udało mi się znaleźć tej opcji w IJ 14 , alePower Save mode
wydaje się, że ją wyłączam.Mam dość dużą bazę kodu ( kod źródłowy AOSP ), więc aktywność HD związana z synchronizacją plików w tle jest denerwująca ...
źródło
Możesz użyć wtyczki optymalizującej intellij:
https://zeroturnaround.com/free/optimizer-for-intellij-idea/
Dzięki wtyczce możesz:
źródło
Odpowiedź udzielona przez
adben
jest bardzo pomocna w poprawie wydajności mojego komputera. Chociaż nieco to zmieniłem po przeczytaniu artykułu w 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
Poprawili wydajność dużych projektów, korzystając z powyższej konfiguracji i działają bezbłędnie również w naszych projektach. Na koniec wyłączyłem wszystkie wtyczki, których nie będę używać, a to również poprawia rzeczy.
Odniesienie: https://dzone.com/articles/the-one-and-only-reason-to-customize-intellij-idea
źródło
Użyłem tej kombinacji i działa dobrze w moim środowisku
-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
źródło
-XX:+UseParNewGC
do najnowszych wersji CLion. Nieprawidłowa opcja.Napisałem mały artykuł na ten temat na medium: https://medium.com/@sergio.igwt/boosting-performance-of-intellij-idea-and-the-rest-of-jetbrains-ides-cd34952bb978
źródło