Limitar el uso de memoria de scripts en Groovy

Cuando lanzas múltiples procesos Groovy en una misma máquina, debes de tener cuidado con el consumo de memoria que cada proceso hace en particular para garantizar el buen uso global de dicha memoria, de manera que no malgastes innecesariamente.

En este aspecto Groovy no se comporta como yo esperaba, ya que aún sabiendo que mis procesos no requerían más de 128Mb, al lanzarlos y medirlos veía que inicialmente se me iban hasta 700Mb y que solo con el tiempo acababan reduciendo su uso por debajo de los 128Mb. Además, este descenso no era inmediato, sino que necesitaba bastante tiempo para producirse, con lo que por el camino era muy fácil que me “petara” la máquina.

Por suerte la solución es sencilla, solamente hay que establecer el uso de memoria del script Groovy en el momento de lanzarlo.

JAVA_OPTS="-Xmx128m -Xms64m -Dfile.encoding=UTF-8" groovy -c utf8 -Dfile.encoding="UTF-8" my_groovy_script.groovy

Con la instrucción anterior le estoy dando al script una memoria inicial de 64Mb, y una memoria máxima de 128Mb, con lo que me aseguro que siempre fluctúa en ese intervalo.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s