java - student - intellij idea vs netbeans
Speedup IntelliJ-Idea (10)
Esta combinación funciona muy bien en mi Intellij13 corriendo en Mavericks:
Actualizado el 18 de julio de 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
Mantengo esta configuración actualizada en https://github.com/adben/config/blob/master/idea64.vmoptions
Estoy usando intelliJ para el desarrollo de Scala y obtuve 8 GB de RAM nueva la semana pasada, así que pensé: es hora de usarlo. Revisé mi administrador de tareas y encontré intelliJ usando ~ 250mb . Desde el eclipse, sabía que ajustar las opciones de JVM ayudaba mucho a mejorar la velocidad, así que busqué en Google ...
y encontré este para OS X. No pude encontrar la opción JVM inmediatamente, así que comencé a ajustar Xmx. En 1 GB, me di cuenta de que ya no comienza. Revisé la versión de intelliJ java, encontré que está obsoleta y es de 32 bits.
Entonces, para usar su JDK actual y 64 bit , debe cambiar su enlace de:
IntelliJ IDEA Community Edition 10.0.2/bin/idea.exe
a
IntelliJ IDEA Community Edition 10.0.2/bin/idea.BAT
y ajuste "Comenzar"
El murciélago busca JDK_HOME
y usa 64 bits ahora.
Mis opciones de VM actuales, que se encuentran en
.../IntelliJ IDEA Community Edition 10.0.2/bin/idea.exe.vmoptions
son
-Xms512m
-Xmx1024m
-XX:MaxPermSize=512m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC
En lugar de -XX:+UseParallelGC
, puede usar -XX:+UseConcMarkSweepGC
, que es
la opción aceptada para aplicaciones de escritorio, pero recientemente cambié al recopilador de rendimiento. porque con una máquina rápida y un montón lo suficientemente pequeño, tienes pausas rápidas, más rendimiento y no hay problemas con la fragmentación (ijuma. #scala)
Cambios:
-XX:+UseConcMarkSweepGC //removed
// removed, because not needed with the lastest JVM.
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
Me atendré a estas opciones por ahora. Realmente me gustaría saber tu experiencia con eso.
¿Qué opciones funcionan mejor para ti? ¿Cómo puedo ocultar esta ventana de cmd mientras ejecuto intelliJ a través del .bat
? :)
Por cierto, aquí hay otro enlace para afinar intelliJ . Básicamente dice en p.20 / 21 para desactivar windows restore y antivirus para los directorios del sistema.
Otra forma de acelerar la inteligencia es poner la carpeta del sistema intellij en ramdrive (gracias OlegYch | h).
from idea.properties
idea.system.path=${idea.home}/.IntelliJIdea/system
Consulte Superusuario para Win 7 64bit RAM Drive o este . 1 GB parece estar bien para mí.
Otra sugerencia que me dio un amigo es excluir los directorios del proyecto de tu antivirus (escanear al acceder)
Hay publicaciones similares sobre tuning Eclipse:
Hace algún tiempo estaba buscando las formas de acelerar la compilación de mi proyecto y ese es el resultado. Esto no es para IntelliJ IDEA en sí, pero ayudará mucho al (re) construir grandes proyectos y, supongo, también funcionará con otros IDEs. Además, describí el enfoque de Linux, pero estoy seguro de que Windows tiene sus propias implementaciones de discos RAM.
La forma más fácil de acelerar la compilación es mover la salida de compilación al disco RAM.
Configuración del disco RAM
Abrir fstab
$ sudo gedit /etc/fstab
(en lugar de gedit
puedes usar vi
o lo que quieras)
Configurar el punto de montaje del disco RAM
Estoy usando discos RAM en varios lugares de mi sistema, y uno de ellos es /tmp
, así que simplemente pondré mi salida de compilación allí:
tmpfs /var/tmp tmpfs defaults 0 0
En este caso, el tamaño del sistema de archivos no estará limitado, pero está bien, el tamaño de mi /tmp
este momento es de 73 MB. Pero si teme que el tamaño del disco RAM sea demasiado grande, puede limitar su tamaño, por ejemplo:
tmpfs /var/tmp tmpfs defaults,size=512M 0 0
Configuración del proyecto
En IntelliJ IDEA, abra Project Structure ( Ctrl+Alt+Shift+S
por defecto), luego vaya a Project - ''Project compiler output'' y muévalo al punto de montaje del disco RAM:
/tmp/projectName/out
(He agregado la carpeta projectName
para encontrarla fácilmente si necesito llegar allí o voy a trabajar con varios proyectos al mismo tiempo)
Luego, vaya a Módulos, y en todos sus módulos vaya a Rutas y seleccione ''Heredar ruta de salida de compilación de proyecto'' o, si desea usar ruta de salida de compilación personalizada, modifique ''Ruta de salida'' y ''Probar ruta de salida'' de la manera en que lo hizo para proyectar la salida del compilador antes.
¡Eso es todo amigos!
PD Algunos números: tiempo de mi compilación de proyecto actual en diferentes casos (aprox):
HDD: 80s
SSD: 30s
SSD+RAM: 20s
PPS Si usa un disco SSD, además de acelerar la compilación, reducirá las operaciones de escritura en su disco, por lo que también ayudará a que su SSD viva feliz para siempre;
He hecho algunas pruebas y he descubierto que, para disminuir las pausas de GC, la siguiente combinación funciona mejor: -XX: + UseConcMarkSweepGC -XX: SoftRefLRUPolicyMSPerMB = 50.
Tampoco haré que el montón sea demasiado grande, 512 o incluso más pequeño está bien para mí. De lo contrario, cuando se llene, el GC tendrá que recorrerlo todo, lo que lleva algún tiempo.
Lo más útil que puede hacer por IntelliJ es tener mucha memoria libre para el almacenamiento en caché de disco . IntelliJ ahorra mucho de su trabajo de procesamiento en archivos en caché. Esto funciona bien si tiene mucha memoria libre, pero si su caché de disco es limitada, verá pausas regulares y de larga duración.
Sugeriría -XX:+UseConcMarkSweepGC
lugar de G1
.
También trabajo copias locales de archivos para minimizar el retraso de acceso a archivos.
Por cierto : para el proyecto en el que estoy, noté la diferencia entre trabajar en una máquina con 24 GB y una con 48 GB, a pesar de que el montón máximo está configurado en 2 GB;)
No estoy seguro de por qué aún no se ha mencionado: puede activar el Power Save mode
, que desactiva muchas actividades de fondo de IJ , incluida la Files Synchronization
. Algunos artículos dicen que es posible desactivar la sincronización de archivos en las opciones de estructura del proyecto (como el artículo en respuesta por @ OJ278), pero no pude encontrar esta opción en IJ 14 , pero el Power Save mode
parece deshabilitarlo.
Tengo una base de código bastante grande (código fuente AOSP ), por lo que la actividad HD debido a la sincronización de archivos de fondo es molesta ...
Para mí, cambiar al disco SSD mejoró mucho el rendimiento (especialmente para proyectos grandes).
Puedes encontrar buenos consejos aquí. Por ejemplo, la velocidad de cambio de IDEA a otra aplicación y viceversa mejoró significativamente después de desactivar la función "Desactivar archivos sincronizados".
http://hamletdarcy.blogspot.com/2008/02/10-tips-to-increase-intellij-idea.html
Puedes usar el plugin optimizador de intellij:
https://zeroturnaround.com/free/optimizer-for-intellij-idea/
Con el complemento puedes:
- Ajuste automático de las opciones de la máquina virtual
- Inhabilitar verificación de clase
- Limpiar cachés del sistema
- Configurar herramientas de compilación externa
- Validar el último Oracle JDK
- Omitir creación y redespliegue
Respecto a:
¿Cómo puedo ocultar esta ventana de cmd mientras ejecuto intelliJ a través del .bat?
Use el comando ''start'' y javaw.exe juntos, entonces, si tiene:
SET JAVA_EXE=%IDEA_JDK%/jre/bin/java.exe
...
"%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*
cambiarlo a:
SET JAVA_EXE=%IDEA_JDK%/jre/bin/javaw.exe
...
start "Intellij IDEA" /b "%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*
Usé esta combinación y está funcionando bien en mi entorno
-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