2013-04-12 7 views
10

Я пытаюсь программно анализировать hprof-файл. Используя инструмент hprof-conv в android-sdk, я создал кучу файлов com.your.package.index.программный файл для анализа данных hprof программно

Как я могу программно проанализировать эти .index-файлы?

Я хочу запустить некоторый пользовательский анализ дерева доминанта, который легко сделать с помощью MAT (анализатора памяти Eclipse) вручную, но вы хотите сделать это автоматическим способом.

+3

Для тех, кто сталкивается этим вопрос, здесь ранее вопрос в OP в качестве фона: http://stackoverflow.com/questions/15977723/analysis-a-hprof-memory-dump-file-from-command-line-programmically – CommonsWare

+0

Является взломателем [Mat plugin source] (http://dev.eclipse.org/svnroot/tools/org.eclipse. mat/trunk/plugins/org.eclipse.mat.hprof/src/org/eclipse/mat/hprof /) по вашему выбору? Я просмотрел источник и не видел ни одного «дерева Доминатора»? –

+0

@hack_on [Я не уверен, что вы выглядели достаточно сложно] (http://dev.eclipse.org/svnroot/tools/org.eclipse.mat/trunk/plugins/org.eclipse.mat.parser/src/org /eclipse/mat/parser/internal/DominatorTree.java). Это не выглядит так страшно, как можно. [SnapshotImpl] (http://dev.eclipse.org/svnroot/tools/org.eclipse.mat/trunk/plugins/org.eclipse.mat.parser/src/org/eclipse/mat/parser/internal/SnapshotImpl .java), указанный в качестве ввода, выглядит так, как будто файл читается. – blahdiblah

ответ

1

Вы можете попробовать использовать MAT из командной строки и генерировать настраиваемые отчеты (дерево доминантов). В этом случае вы можете либо фильтровать с помощью XML, который может использоваться для генерации отчета, либо для анализа отчета через внешний код.

См: http://www.eclipse.org/forums/index.php/t/489594/

выше ссылка должна вести вас через эту задачу ...

+1

, пожалуйста, укажите, как он будет автоматически анализировать этот инструмент. – Hamad

+1

Существует несколько способов сделать это, вы можете посмотреть каталог hprof с помощью мониторов файлов в java 7 NIO и запустить MAT с помощью вышеуказанного комментария. Для просмотра кода папки смотрите: http://javapapers.com/core-java/monitor-a-folder-using-java/ –