Задача
Выгрузить в файлы все бинарные массивы с объемом больше 10Мб из хип-дампа.
Решение
OQL-скрипт:
var i = 0;
map(
heap.objects('byte[]', false, 'sizeof(it)>10000000'),
function(v) {
var file = new java.io.FileOutputStream("T:/binaries/"+i+".bin");
try {
for(var j=0;j<v.length;j++) {
file.write(v[j]);
file.flush();
}
} finally {
file.close();
}
i++;
return v;
}
);
А вообще, экспортировать массивы байт в файл умеет Netbeans, правда, только по одному массиву за раз. Для этого необходимо выделить нужный массив в списке экземпляров, и нажать "Сохранить в файл" под окошком с заголовком "Элементы массива". В качестве выходного формата поддерживается как csv, так и bin (последний наиболее удобен, если нас интересует непосредственно бинарный контент, а не элементы массива байт по-отдельности). И, кстати, экспорт в файл Natbeans делает на пару порядков быстрее, чем приведенный выше скрипт.
Комментариев нет:
Отправить комментарий