2014-09-15 2 views
0

Мои знания прямого отображения буфера на практикеjava.nio.MappedByteBuffer виртуальный/физический адрес

прямые буферы всегда живут за пределами сборки мусора кучи.

Таким образом, я предполагаю, что это имеет смысл и возможно отобразить некоторую интересную информацию во время выполнения. В частности, как я могу получить начальный виртуальный адрес буфера, начальный физический адрес буфера и размер буфера? Я использую ubuntu, а также очень любопытно с частью виртуального -> физического перевода. Есть ли какой-нибудь инструмент для достижения этого?

+0

Это имеет смысл, но это необязательно. Документация API не предоставляет механизм для доступа к этой информации. – chrylis

+0

Это не должно быть от API. Есть ли какие-либо другие приложения/инструменты со стороны os, чтобы понять это? –

+0

Несомненно. Но вы даже не указали, какую ОС вы используете. И вы пометили свой вопрос неправильно. Если вы хотите узнать, как получить физический адрес для логического, это не имеет ничего общего с Java. – Holger

ответ

0

Знаете ли вы размер буфера, потому что вы его создали.

Вы можете получить виртуальный адрес через JNI.

Невозможно получить физический адрес, и ничего полезного вы не смогли бы с ним сделать, если бы могли.

+0

Поскольку я работаю на стороне оборудования для буфера, физический адрес на самом деле очень важен для меня. Концептуально можно понять это с помощью инструмента со стороны ОС. Мне просто интересно, что это за инструмент. –

+0

Если вы находитесь внутри ядра, вы можете получить физический адрес, конечно, но тогда у вас нет Java или MappedByteBuffer. Вы должны будете объяснить свою проблему более подробно. – EJP

+0

Это моя проблема. Есть ли определенный способ получить это? Скажите, можно ли запустить системный вызов из моей java-программы, чтобы «заглянуть в ядро» для физического адреса? –

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