Wskazówki dotyczące obsługi dużych projektów za pomocą Maven i IntelliJ IDEA

Czytałam to post na blogu o doświadczeniach zespołu wykorzystującego Intellij Idea do dużych projektów Mavena, a także spojrzał na podobne pytanie wysłane około 2 lat temu dla IDEA V.10.0.2.

Jedna z porad wymienionych w pierwszym miała sens :
Przenieś C:\Users\$user\.IntelliJIdea12 do folderu, do którego nie ma dostępu-skanowanego przez program antywirusowy.

Przeszukałem wokół opcji performance centric VM i obecnie mój idea64.exe.vmoptions wygląda tak:

-Xms1200m
-Xmx1200m
-XX:MaxPermSize=200m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-Dsun.io.useCanonCaches=false

Pytania

  1. Czy masz jeszcze jakieś takie wskazówki, aby poprawić wydajność Intellij IDEA (12.1.3, 64 bit) z dużymi / ogromnymi projektami maven ?

  2. Czy mógłbyś podzielić się swoimi odkryciami w opcjach VM w idea64.exe.vmoptions i / lub konfiguracji idei w idea.properties.

  3. Próbowałem użyć JDK 7 do uruchomienia pomysłu, ale to nie wydaje się strasznie wpływać na jego wydajność w ten czy inny sposób. Jeśli próbowałeś więc, doświadczyłeś tego samego ?

Author: Community, 2013-06-07

3 answers

Zgodnie z sugestią @CrazyCoder, zastosowałem się do kroków na oficjalnym FAQ w tej sprawie:

wspólne rozwiązania problemów z wydajnością IntellJ IDEA

W szczególności, następujące wydaje się mieć znaczący wpływ:

  1. Przeniesiono c:/Users/$user/.IntelliJIdea12 do lokalizacji wykluczonej przez skaner dostępu McAfee i zaktualizowano $INTELLJ_INSTALL_FOLDER/bin/idea.properties, aby wskazać nową lokalizację w ten sposób (gdzie c:/dev jest folderem wykluczonym przez McAfee):

    Pomysł.config.path = c: / dev/.IntelliJIdea12 / config
    pomysł.system.path = c: / dev/.IntelliJIdea12 / system
    pomysł.wtyczki.path = c: / dev/.IntelliJIdea12/config / plugins
    pomysł.log.path = c: / dev/.IntelliJIdea12 / system / log
  2. In $INTELLJ_INSTALL_FOLDER/bin/idea.properties set idea.jars.nocopy=true as documented in to wpis na blogu.

  3. Jedyne zmiany jakie pozostały to te sugerowane w zbyt niski rozmiar sterty na 64-bitowy JVM. Oto co mam aktualnie w tym pliku:

    - Xms1200m
    - Xmx1200m
    -XX: + UseCompressedOops
    -XX: MaxPermSize=350m
    - XX:ReservedCodeCacheSize=96m
    -XX: + UseCodeCacheFlushing
    -ea
    -Dsun.io. useCanonCaches=false
    -Djava. net. preferIPv4Stack=true

  4. Wyłączona wtyczka Git integration ponieważ używam głównie linii komend Cygwin-Git.

  5. To było przydatne do monitor .IntelliJIdea12/idea.log. Na przykład : wyłączyłem wtyczkę osmorc (dla OSGI) po tym, jak zobaczyłem, że często rejestrowano błąd podczas próby otwierania plików zip w projektach. Przykładowy błąd:

    WARN-pi.vfs.impl.słoik.JarHandlerBase-błąd podczas otwierania pliku zip: C:\dev\a-maven-project\pom.XML java.util.zip.ZipException: błąd w Otwieranie pliku zip na Javie.util.zip.ZipFile.open (Native Method)
    na Javie.util.zip.ZipFile.(ZipFile.java:127)
    na java.util.zip.ZipFile.(ZipFile.java:143)

  6. Wyłączono wszystkie wtyczki, których nie potrzebuję. Aktualna lista wyłączonych wtyczek to:

    Wyłączone wtyczki: ASP (0.1), Android Designer, Android Support (10.0), Atlassian Connector for IntelliJ IDE (3.0.9, SVN:1212171008), Base Cucumber (1.0), BashSupport (1.1beta16), Obsługa CFML (3.53), CheckStyle-IDEA( 4.2), Integracja ClearCase (2.0), Cloud Foundry integracja (1.0), Integracja CloudBees (1, 0), Commander (1, 0, 0), Copy as HTML (0.8.1), Cucumber for Groovy (1.0), Cucumber for Java (1.0), Database Navigator (3.0.2501), Opisz Klucz (0.3), Drools Wsparcie (1.0), Integracja Eclipse( 3.0), Obsługa Flash/Flex (1.0), Obsługa GWT (1.0), Integracja Geronimo (1.0), Integracja Git (8.1), GitHub, Integracja Z Google App Engine( 1.1.4), Konsola Grep (1.1), GuiceyIDEA (8.0), HAML, IDEtalk (1.0), IdeaVim (0.28), identyfikator Highlighter (3.62), IntelliJad Plus (0.5.6), JBoss Integracja (1.0), JBoss jBPM( 2.0.0), Jrebel Plugin (2.0.2), JavaFX (1.0), Key promoter (1.0.11), Log4JPlugin (1.02), Markdown (0.8.3), Osmorc (1.4.3), Integracja Perforce (2.0), PluginUpdateNotifier (2.0.3), RemoteTail (0.3.4), Integracja Resin (8.1), Ruby (5.4.0.20130410), zapytanie SQL Plugin (2.2), SSH Remote Run( 0.1), Obsługa Seam Pageflow (1.0), Seam Obsługa Stron (1.0), Obsługa Seam (1.0), SmarterEditor (0.8.3), Struts Wtyczka Navigator (1.3.4), Integracja Z Subversion (1.1), TFS Integracja (999.999), Obsługa Tapestry (1.0), TestNG-J (8.0), UI Designer, UI Designer( Core), Obsługa Vaadin (1.0), Visual SourceSafe Integracja (2.0), Integracja WebLogic (1.0), Integracja WebSphere (1.0), ZKM-Unscramble (1.0), obsługa dmServer (0.9.5), hg4idea (10.0), soapUI Plugin (3.5)

 26
Author: Ashutosh Jindal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-09 08:30:21

Czasami może zabraknąć pamięci na dużym projekcie. Proces importu dużego projektu maven nie powiedzie się.
Więc jeśli któryś z modułów twojego projektu jest podkreślony czerwoną linią i widzisz

Exception java.lang.OutOfMemoryError: GC overhead limit exceeded

Na nim, przejdź do "Ustawienia - > narzędzia kompilacji - > Maven - > importowanie", i znajdź tam opcję" Opcje maszyny wirtualnej dla importera". Zwiększ limit, ustaw go na -Xmx1g (lub więcej).

(Źródło)

 3
Author: naXa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:23

IntelliJ IDEA 2017.2 Dodano naprawdę fajną funkcję , która bardzo pomaga podczas pracy z dużymi projektami. Zasadniczo możesz zaznaczyć, które moduły zostaną załadowane przez pomysł, a które nie. Rozładowane Moduły nie będą w żaden sposób dotykane przez IDE. Nie będą indeksowane, przeszukiwane, nie będą poddawane refaktoryzacji podczas kontroli. Załadowane / rozładowane moduły można szybko skonfigurować w oknie dialogowym załaduj/rozładuj moduły . Okno dialogowe można otworzyć za pomocą

Drzewo Projektu okno → kliknij prawym przyciskiem myszy na pliku → załaduj / rozładuj Moduły...

Tutaj wpisz opis obrazka Tymczasowe zmniejszenie liczby modułów, z którymi współpracuje IDEA, znacznie zwiększy wydajność dużych projektów. Więcej informacji na temat tej funkcji i innych usprawnień wydajności dla IntelliJ IDEA można znaleźć w wpisie na blogu, który napisałem: IntelliJ IDEA Tips & Tricks: Improving performance

 3
Author: Vojtech Ruzicka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-09 08:10:55