А на Shenandoah GC смотреть пробовали? У него есть опции, чтобы динамически отдавать неиспользуемую память OS. Прикрутил к IDEA и всем порождаемым ею процессам. Жить стало нам...
А testcontainers не подходят? И не надо будет голову забивать разными конфигами, один раз настроил и везде одинаково работать будет.