Вы не можете контролировать использование памяти;вы можете контролировать только размер виртуальной памяти, а не объем используемой памяти, поскольку это чрезвычайно сложно (возможно, невозможно) узнать для одного процесса в операционной системе, которая поддерживает виртуальную память.появляется в виртуальном адресном пространстве процесса в данный момент, например, при использовании ядра и кэшировании диска.Процесс может изменять отображаемые страницы так часто, как ему нравится (например, с помощью mmap ()).Часть адресного пространства процесса также отображается, но фактически не используется, или используется совместно с одним или несколькими другими процессами.Это делает измерение использования памяти для каждого процесса довольно недостижимой практической целью.
И ограничение размера виртуальной машины также не является хорошей идеей, поскольку это приведет к остановке процесса, если он попытается использоватьmore.
Правильный способ сделать это в этом случае (для процесса Java) - установить максимальный размер кучи (с помощью различных хорошо задокументированных параметров запуска JVM).Однако опыт подсказывает, что вы не должны устанавливать его менее 1 ГБ.