Java: Asignar memoria

Java: Asignar memoria

Esta página documenta el criterio general para configurar la memoria Java en entornos de desarrollo con GeneXus 18 + Apache Tomcat 10.1, y las configuraciones específicas aplicadas en los equipos de la Dirección de Informática.


1. Criterio General para Asignar Memoria Java

En un equipo de desarrollo con GeneXus y Tomcat corriendo en simultáneo, la RAM se distribuye entre cuatro actores principales:

Actor Descripción % orientativo de la RAM total
Sistema operativo (Windows) Kernel, drivers, procesos de fondo ~15–20 %
Apache Tomcat (Xmx) Servidor de la app GeneXus en ejecución ~25–35 %
GeneXus IDE + compilador (-J-Xmx) Proceso de build / compilación ~12–20 %
Margen libre (headroom) Picos de carga, otras apps, swapping Resto (mínimo 30 %)

Regla de oro

⚠️ Tomcat (Xmx) + Compilador GeneXus (Xmx) no deben superar el 50 % de la RAM total del equipo.Esta regla deja siempre al menos el 50 % restante para el SO, procesos del sistema y headroom. Ignorarla puede causar swapping y degradar drásticamente el rendimiento.


2. Ejemplos Prácticos por Cantidad de RAM

En todos los casos se aplica el criterio: Tomcat Xmx ≈ 25–35 % de la RAM y compilador GeneXus ≈ 12–20 % de la RAM.

Equipo con 8 GB de RAM

Con solo 8 GB el margen es ajustado. Se prioriza Tomcat y se recorta el compilador al mínimo funcional.

Componente Valor recomendado % de la RAM
SO Windows ~1.5 GB reservado ~19 %
Tomcat — Initial pool (Xms) 1024 MB 12.5 %
Tomcat — Maximum pool (Xmx) 2048 MB 25 %
GeneXus compilador (-J-Xmx) 1024 MB 12.5 %
Margen libre estimado ~3.5 GB ~44 %

-J-Xmx1024m -J-Xms256m -encoding utf88 GB es el mínimo aceptable para correr GeneXus + Tomcat en simultáneo. Con builds grandes puede haber lentitud notable.

Equipo con 16 GB de RAM — ejemplo: PC3191

Con 16 GB hay buen margen. Se puede dar aire tanto a Tomcat como al compilador sin comprometer el sistema.

Componente Valor recomendado % de la RAM
SO Windows ~2.5 GB reservado ~16 %
Tomcat — Initial pool (Xms) 2048 MB 12.5 %
Tomcat — Maximum pool (Xmx) 4096 MB 25 %
GeneXus compilador (-J-Xmx) 2048 MB 12.5 %
Margen libre estimado ~7.5 GB ~47 %

-J-Xmx2048m -J-Xms512m -encoding utf8Si Tomcat no está corriendo al momento de compilar, se puede subir el compilador hasta -J-Xmx3072m temporalmente.

Equipo con 32 GB de RAM — ejemplo: PC15653915

Con 32 GB hay amplio margen para configurar Tomcat con más headroom y un compilador robusto.

Componente Valor recomendado % de la RAM
SO Windows ~3 GB reservado ~9 %
Tomcat — Initial pool (Xms) 4096 MB 12.5 %
Tomcat — Maximum pool (Xmx) 8192 MB 25 %
GeneXus compilador (-J-Xmx) 3072 MB ~9.5 %
Margen libre estimado ~17 GB ~53 %

-J-Xmx3072m -J-Xms512m -encoding utf8Tomcat + compilador suman 11 GB sobre 32 GB totales (34 %), dentro del límite del 50 %.


3. Configuración por Equipo

Tabla comparativa

Característica PC3191 PC15653915
Procesador Intel Core i7-7700 @ 3.60 GHz Intel Core i5-13400 @ 2.50 GHz (13th Gen)
RAM instalada 16.0 GB 32.0 GB
Sistema operativo Windows 11 Pro 23H2 Windows 11 Pro
JDK Oracle JDK 21 (21.0.7+8-LTS) Oracle JDK 21
Tomcat Apache Tomcat 10.1.44 Apache Tomcat 10.1
Tomcat Xms recomendado 2048 MB 4096 MB
Tomcat Xmx recomendado 4096 MB 8192 MB
Compilador GeneXus Xmx 2048 MB 3072 MB

PC3191 — Intel i7-7700 / 16 GB RAM

GeneXus — Compiler Options

Ubicación: GeneXus IDE → Tools → Preferences → Build → Advanced → Compiler Options

-J-Xmx2048m -J-Xms512m -encoding utf8

Apache Tomcat — Java Memory

Ubicación: Apache Tomcat 10.1 Properties → pestaña Java

Campo Valor anterior Valor aplicado
Initial memory pool (Xms) 1028 MB 2048 MB
Maximum memory pool (Xmx) 4096 MB 4096 MB (sin cambio)

Java Options adicionales (Tomcat)

-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+DisableExplicitGC

PC15653915 — Intel i5-13400 / 32 GB RAM

GeneXus — Compiler Options

Ubicación: GeneXus IDE → Tools → Preferences → Build → Advanced → Compiler Options

-J-Xmx3072m -J-Xms512m -encoding utf8

Apache Tomcat — Java Memory

Ubicación: Apache Tomcat 10.1 Properties → pestaña Java

Campo Valor aplicado
Initial memory pool (Xms) 4096 MB
Maximum memory pool (Xmx) 8192 MB

Java Options adicionales (Tomcat)

-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+DisableExplicitGCTomcat + compilador suman ~11 GB sobre 32 GB totales (34 %), dentro del límite seguro del 50 %.


4. Pasos para Aplicar la Configuración

GeneXus — Compiler Options

  1. Abrir GeneXus 18
  2. Ir a: Tools → Preferences → Build → Advanced
  3. Localizar el campo “Compiler Options”
  4. Reemplazar el valor según el equipo (ver sección 3)
  5. Guardar y reiniciar GeneXus

Apache Tomcat — Java Memory

  1. Abrir Configure Tomcat (Tomcat10w.exe) como Administrador
  2. Ir a la pestaña “Java”
  3. Actualizar Initial memory pool y Maximum memory pool según el equipo
  4. Agregar las Java Options indicadas en la sección 3 (campo Java Options)
  5. Hacer clic en “Aplicar” y luego “Aceptar”
  6. Reiniciar el servicio de Tomcat para que los cambios tomen efecto

5. Referencia de Opciones JVM

Opción Aplica a Descripción
-J-Xmx GeneXus compilador Memoria máxima del proceso de compilación
-J-Xms GeneXus compilador Memoria inicial del proceso de compilación
-Xmx (Max pool) Tomcat Memoria máxima del heap de la JVM de Tomcat
-Xms (Init pool) Tomcat Memoria inicial del heap. Subirla evita expansión progresiva
-XX:+UseG1GC Tomcat Activa el Garbage Collector G1, óptimo para heaps de 2–8 GB en JDK 21
-XX:MaxGCPauseMillis=200 Tomcat Limita pausas de GC a 200 ms para mejor respuesta de la app
-XX:+DisableExplicitGC Tomcat Impide que librerías externas fuercen un GC manual
-encoding utf8 GeneXus compilador Codificación de caracteres. No modificar.

Dirección de Informática — Municipalidad de Río Cuarto | Última actualización: Junio 2025

Deja un comentario 0

Your email address will not be published. Campos requeridos marcados *