2 декабря 2015 г., 15:47 пользователь Aleksandr Sytar <sytar.a...@gmail.com> написал: > > Все несколько сложнее чем кажется на первый взгляд, но сообщения о нехватке > памяти может быть получено когда память есть, но не та которая нужна > приложению - в данном случае java попросила 1 страницу 8к, и их не > оказалось, а вот страниц 4к, 16к и т.д. вполне могло быть в достатке.
Это какие новости операционно-системо-строения. С какого это рожна приложению не всё равно какая там память? Приложение оперирует виртуальными адресами и две соседние по виртуальным адресам страницы памяти могут лежат в противоположных уголках физической. И ничего приложение про это не узнает. Поэтому если у ядра есть две странички по 4К, выделить их приложению и промапить их на подрядидущие адреса не составляет никакого труда. Если подходящий свободный диапазон виртуальных адресов есть в пространстве процесса. Кроме того, не знаю о какой архитектуре идет речь, но на x86 все страницы, кроме huge, 4k. Поэтому не понятно, о каких страницах по 16К вы тут пишите. -- With best regards Max Dmitrichenko