
Todos los que utiliceis a diario IDEs basados en Java para programar sabreis que no son especialmente rápidos, especialmente con archivos grandes o cuando tenemos muchos archivos abiertos.
Sin embargo hay algunas recomendaciones y trucos para que nuestro IDE basado en Java funcione más rápida y agilmente.
En margenn, después de haber probado opciones como Netbeans, Eclipse PDT o Aptana, elegimos utilizar PHPStorm, de JetBrains, y la verdad es que para nosotros no hay vuelta atrás, sin duda es el mejor.
A continuación expongo mi guía de optimización de rendimiento de PHPStorm:
1. Deshabilita todos los plugins que no utilices en tu día a día
En mi caso, programo con PHP, JS, HTML y CSS por lo que todo lo demás sobra para mi. Estos son los plugins que he deshabilitado (y no son pocos):
- ASP
- CVS Integration (Usamos Subversion, Mercurial o Git)
- Database Support (Desarrollo en remoto - FTP)
- Java Server Pages Integration
- LESS support
- Perforce Integration
- Phing Support
- QuirksMode
- Refactor-X
- RELAX-NG Support
- SASS support
- SpellChecker
- SQL support
- W3C Validators
- XPathView + XSLT Support
- YAML
2. Desactiva las “inspections” que no consideres necesarias
Especialmente en el caso de Javascript desactivar las inspecciones oportunas agiliza mucho el editor ya que cada vez que editas tu archivo, tiene que escanear todo de nuevo para entender cómo se relaciona el nuevo código que escribes con el existente.
Estas son las que he deshabilitado para Javascript por diferentes motivos:
- Unnecessary Semicolon
- Unresolved Function
- Unresolved Variable
- Mismatched Collection Query Update Inspection
- Potentially Invalid Constructor Usages
- Suspicious Name Combination Inspection
- Implicitly Internal Declaration
- Untyped Declaration
Ahora cuando edito un archivo el editor no se ralentiza y la CPU no se pone al 100%.
Deshabilitadas para HTML:
- Form input without an associated label
- Image size mismatch
- Malformed content of <script> tag
Como nota adicional también he deshabilitado todas las inspecciones de PHPDoc, Probably bug y XML.
3. Desactiva las “intentions” que no consideres necesarias
Las intenciones también tienen su impacto en el rendimiento aunque en un grado menor. Desactiva todas las que no consideres útiles teniendo en cuenta tu estilo de código (formato).
Si observais, de nuevo, el lenguaje que más intentions tiene es Javascript.
4. Amplia la memoria disponible para la máquina virtual
En margenn utilizamos exclusivamente MAC OS X (Windows en virtual para testear unicamente):
- Buscad la aplicación PHPStorm, click secundario y “Mostrar contenidos del paquete”.
- En el directorio “Contents” encontrareis el archivo “info.plist”, abridlo con TextEdit o XCode.
- Cambiad la configuración del parámetro VMOptions.i386 a la siguiente:
-Xms512m -Xmx1024m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m - Cambiad la configuración del parámetro VMOptions.x86_64 a la siguiente:
-Xms512m -Xmx1024m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m -XX:+UseCompressedOops
En Windows y Linux la ruta y el nombre del archivo de configuración es diferente pero los parámetros son los mismos.
A continuación explico qué significa cada parámetro:
- -Xms512m: Tamaño de inicio de la memoria de tipo heap de la máquina virtual de Java a 512Mb. El valor por defecto que establece PHPStorm es de 128Mb. Si se aumenta este valor, se elimina el tiempo que se tardaría en aumentar el tamaño en memoria de la máquina virtual si se llegara el caso de que se necesitara más memoria, por lo que aumentaría el rendimiento en los casos que la aplicación haga uso intensivo de la memoria.
- -Xmx1024m: Tamaño máximo de la memoria de tipo heap de la máquina virtual de Java a 1024Mb (1 Giga). El valor por defecto que establece PHPStorm son 768Mb. Si la aplicación supera el tamaño máximo de memoria que marca este parámetro, se lanza la excepción java.lang.OutOfMemoryError. No conviene asignar a este parámetro el máximo de la memoria de nuestro ordenador porque si ya no queda memoria RAM disponible (por la que usa el sistema operativo u otras aplicaciones) se pueden producir escrituras en memoria asignada a otros programas y provocar un auténtico lío.
- -XX:MaxPermSize=512m: Tamaño máximo de la memoria de tipo PermGen (non-heap) a 512Mb. El valor por defecto de PHPStorm es 250Mb (i386) o 350Mb (x86_64). Si la aplicación supera el tamaño máximo de memoria para este tipo que marca este parámetro, se lanza la excepción java.lang.OutOfMemoryError: PermGen space. El valor necesario para este parámetro siempre suele ser menor que el de la memoria de tipo heap. Si se quiere especificar un valor distinto de 128Mb bastaría con sustituir el valor 128 del parámetro con el que se desee, siempre que sean múltiplos de 2 (64, 128, 256, 512, 768, 1024, 2048…)
- -XX:ReservedCodeCacheSize=128m: Tamaño de la memoria reservada para caché de código. El tamaño asignado por defecto de PHPStorm es 64m.
Podeis echar un vistazo a la referencia completa de las opciones de máquina virtual de Java Hotspot.
Después de seguir estos pasos, os aseguro que notareis que PHPStorm funciona más ligero y no se ralentizará apenas al editar archivos grandes.
Hasta el próximo artículo!!