performance - varios - Consejos para manejar proyectos grandes con Maven e IntelliJ IDEA
manual intellij idea español pdf (3)
Estaba leyendo this publicación del blog sobre la experiencia de un equipo que utiliza Intellij Idea para proyectos de grandes fabricantes y también he analizado una pregunta similar publicada hace aproximadamente 2 años para IDEA v.10.0.2.
Uno de los consejos mencionados en el primero tenía mucho sentido:
Mueva C:/Users/$user/.IntelliJIdea12
a una carpeta en la que el antivirus no haya analizado el acceso.
He buscado opciones de VM centradas en el rendimiento y actualmente mi idea64.exe.vmoptions
tiene este aspecto:
-Xms1200m
-Xmx1200m
-XX:MaxPermSize=200m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-Dsun.io.useCanonCaches=false
Preguntas
¿Tiene más consejos de este tipo para mejorar el rendimiento de Intellij IDEA (12.1.3, 64 bit) con proyectos de maven grandes / enormes?
¿Podría por favor compartir los descubrimientos que ha realizado en las opciones de VM en
idea64.exe.vmoptions
y / o la configuración de IDEA enidea.properties
?He intentado usar JDK 7 para iniciar IDEA, pero esto no parece afectar de manera terrible su rendimiento de una manera u otra. Si has intentado hacerlo, ¿experimentaste lo mismo?
A veces puede quedarse sin memoria en un proyecto grande. Un proceso de importación del gran proyecto maven falla entonces.
Así que si alguno de los módulos de su proyecto está subrayado con una línea roja y verá
Exception java.lang.OutOfMemoryError: GC overhead limit exceeded
en él, vaya a "Configuración -> Herramientas de compilación -> Maven -> Importar" y busque la opción "Opciones de VM para el importador" allí. Aumente el límite, -Xmx1g
en -Xmx1g
(o más).
(Source)
IntelliJ IDEA 2017.2 Se agregó una característica realmente agradable , que ayuda mucho cuando se trabaja con proyectos grandes. Básicamente, puede marcar qué módulos se cargarán mediante IDEA y cuáles no. Los módulos descargados no serán tocados de ninguna manera por el IDE. No serán indexados, buscados, no estarán sujetos a refactorización en las inspecciones. Los módulos cargados / descargados se pueden configurar rápidamente en el cuadro de diálogo Cargar / Descargar módulos . El diálogo se puede abrir usando
Ventana del árbol del proyecto → Haga clic con el botón derecho en un archivo → Cargar / descargar módulos ...
Reducir temporalmente la cantidad de módulos con los que trabaja IDEA aumentará en gran medida el rendimiento de grandes proyectos. Puede encontrar más información sobre esta función y otros ajustes de rendimiento para IntelliJ IDEA en una publicación del blog que escribí: IntelliJ IDEA Consejos y trucos: Mejora del rendimiento
Según lo sugerido por @CrazyCoder, seguí los pasos en las preguntas frecuentes oficiales con respecto a este asunto:
Soluciones comunes para problemas de rendimiento de IntellJ IDEA
Específicamente, lo siguiente parece haber tenido un efecto apreciable:
Movió
c:/Users/$user/.IntelliJIdea12
a una ubicación excluida por el escáner en acceso de McAfee, y actualicé$INTELLJ_INSTALL_FOLDER/bin/idea.properties
para que apunte a la nueva ubicación como tal (dondec:/dev
es el carpeta excluida por McAfee):idea.config.path = c: /dev/.IntelliJIdea12/config
idea.system.path = c: /dev/.IntelliJIdea12/system
idea.plugins.path = c: /dev/.IntelliJIdea12/config/plugins
idea.log.path = c: /dev/.IntelliJIdea12/system/logEn
$INTELLJ_INSTALL_FOLDER/bin/idea.properties
establezcaidea.jars.nocopy=true
tal como se documenta en this publicación del blog.Vuelva a la acción
$INTELLIJ_INSTALL_FOLDER/bin/idea64.exe.vmoptions
. Los únicos cambios que quedan son los sugeridos en Un tamaño de almacenamiento demasiado bajo para una JVM de 64 bits. Aquí está lo que tengo actualmente en ese archivo:-Xms1200m
-Xmx1200m
-XX: + UseCompressedOops
-XX: MaxPermSize = 350m
-XX: ReservedCodeCacheSize = 96m
-XX: + UseCodeCacheFlushing
-ea
-Dsun.io.useCanonCaches = false
-Djava.net.preferIPv4Stack = trueEl complemento de integración de Git está deshabilitado ya que principalmente uso la línea de comandos Cygwin-Git.
Fue útil monitorear
.IntelliJIdea12/idea.log
. Por ejemplo: deshabilité el complemento osmorc (para OSGI) después de ver que frecuentemente se registraba un error al intentar abrir archivos zip en los proyectos. Error de muestra:WARN - pi.vfs.impl.jar.JarHandlerBase - error al abrir el archivo zip: C: / dev / a-maven-project / pom.xml java.util.zip.ZipException: error al abrir el archivo zip en java.util. zip.ZipFile.open (Método nativo)
en java.util.zip.ZipFile. (ZipFile.java:127)
en java.util.zip.ZipFile. (ZipFile.java:143)Desactivado todos los complementos que no necesito. La lista actual de complementos deshabilitados es:
Complementos deshabilitados: ASP (0.1), Android Designer, Android Support (10.0), Atlassian Connector para IntelliJ IDE (3.0.9, SVN: 1212171008), Base Cucumber (1.0), BashSupport (1.1beta16), CFML Support (3.53), CheckStyle-IDEA (4.2), Integración de ClearCase (2.0), Integración de Cloud Foundry (1.0), Integración de CloudBees (1.0), Comandante (1.0.0), Copiar como HTML (0.8.1), Cucumber for Groovy (1.0), Cucumber para Java (1.0), Database Navigator (3.0.2501), Describe Key (0.3), Drools Support (1.0), Eclipse Integration (3.0), Flash / Flex Support (1.0), GWT Support (1.0), Geronimo Integration (1.0 ), Git Integration (8.1), GitHub, Google App Engine Integration (1.1.4), Grep Console (1.1), GuiceyIDEA (8.0), HAML, IDEtalk (1.0), IdeaVim (0.28), identificador resaltador (3.62), IntelliJad Más (0.5.6), JBoss Integration (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), Perforce Integration (2.0), PluginUpdateNotifier (2.0.3), Re moteTail (0.3.4), Integración de resina (8.1), Ruby (5.4.0.20130410), Complemento de consulta SQL (2.2), Ejecución remota SSH (0.1), Soporte de flujo de páginas de costura (1.0), Soporte de páginas de costura (1.0), Soporte de costura (1.0), SmarterEditor (0.8.3), Struts Navigator Plugin (1.3.4), Integración de Subversion (1.1), Integración de TFS (999.999), Soporte de tapicería (1.0), TestNG-J (8.0), Diseñador de interfaces de usuario, Diseñador de interfaces de usuario (Core), Soporte de Vaadin (1.0), Integración de Visual SourceSafe (2.0), Integración de WebLogic (1.0), Integración de WebSphere (1.0), ZKM-Unscramble (1.0), Soporte de dmServer (0.9.5), hg4idea (10.0), soapUI Plugin (3.5)