2015-02-23 4 views

ответ

3

Метод Unsafe#allocateMemory является родным, и native implementation of Unsafe#allocateMemory непосредственно вызывает os::malloc, делегируя работу по распределению в основную систему. Существует несколько вариантов бухгалтерии и некоторых вариантов отладки, но, похоже, нет встроенного механизма ограничения размера распределения.

В зависимости от случая приложения вы можете рассмотреть возможность обматывания вызова Unsafe#allocateMemory собственным методом, который, как вы предположили, выполняет проверку на ограничение размера на основе параметра командной строки.

Если у вас есть намерение предотвратить использование сторонней библиотеки (которая использует Unsafe#allocateMemory) из выделения слишком большого количества памяти, я думаю, что разумного способа достичь этого не будет.

Смежные вопросы