Avatar ·

¿Qué son los parámetros -Xms y -Xmx al iniciar la JVM y cómo configurarlos correctamente?

¡Hola, colegas! Soy nuevo en Java y me encontré con un problema al ejecutar mi primera aplicación seria. Tengo un programa simple que procesa un archivo CSV grande (aproximadamente 500 MB). Escribí este código:
import java.io.*;
import java.util.*;

public class CsvProcessor {
    public static void main(String[] args) throws Exception {
        List<String> lines = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader("data.csv"))) {
            String line;
            while ((line = br.readLine()) != null) {
                lines.add(line);
            }
        }
        System.out.println("Líneas cargadas: " + lines.size());
    }
}
Cuando lo ejecuto con el comando `java CsvProcessor`, el programa falla con el error `OutOfMemoryError: Java heap space`. He oído que se deben usar los flags `-Xms` y `-Xmx`, pero no entiendo qué significan ni cómo configurarlos correctamente. En internet dicen que `-Xms`