|
Эта публикация цитируется в 1 научной статье (всего в 1 статье)
Подход к проведению динамического анализа Java-программ методом модификации виртуальной машины Java
М. К. Ермаков, С. П. Вартанов Факультет вычислительной математики и кибернетики, Московский государственный университет им. М.В. Ломоносова
Аннотация:
На настоящий момент при разработке программного обеспечения активно используются методы автоматического статического и динамического анализа программ. Так, динамический анализ предоставляет возможности обнаруживать дефекты и ошибки проектирования, проявляющиеся во время выполнения программ, требуя минимального участия эксперта. При проведении динамического анализа распространены два подхода к исследованию выполнения программы — внешний мониторинг, осуществляющийся системными средствами и отладчиками, и инструментация программного кода — модификация и внедрение дополнительной функциональности. При анализе исполняемого кода во внутреннем представлении, обрабатываемого интерпретатором или виртуальной машиной, становиться возможно применение третьего подхода — мониторинга средствами самого интерпретатора или виртуальной машины. В данной статье рассмотрены возможности подобного подхода на примере проведения анализа использования динамической памяти в виртуальной машине Dalvik операционной системы Android.
Работа над представленным методом обусловлена ограничениями виртуальной машины Dalvik, приводящими к невозможности использования большого количества существующих инструментов профилирования памяти. В данной статье рассмотрены непосредственные модификации виртуальной машины Dalvik, включающие расширение поддержки стандартного протокола Java Debug Wire Protocol, для отслеживания событий выделения, освобождения и доступа к памяти. Дополнительно приведён обзор возможностей разработанного отладчика, обеспечивающего регистрацию данных событий в режиме реального времени для последующей обработки. Представленный отладчик, основанный на существующем средстве Dalvik Debug Monitor, позволяет проводить работу одновременно с несколькими активными процессами и обработку результатов множественных запусков. В рамках практических экспериментов были рассмотрен набор стандартных пользовательских приложений Android, выполняющихся на модифицированной версии виртуальной машины Dalvik под контролем разработанного отладчика. Эксперименты позволили выявить некоторые базовые особенности работы с памятью, включающие активное использование массивов примитивных типов языка Java и неэффективность использования памяти, выделяемой для объектов классов, отвечающих за отображение элементов графического интерфейса приложений.
Ключевые слова:
динамический анализ программ, профилирование памяти, Java, Android.
Образец цитирования:
М. К. Ермаков, С. П. Вартанов, “Подход к проведению динамического анализа Java-программ методом модификации виртуальной машины Java”, Труды ИСП РАН, 27:2 (2015), 23–38
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp120 https://www.mathnet.ru/rus/tisp/v27/i2/p23
|
Статистика просмотров: |
Страница аннотации: | 174 | PDF полного текста: | 73 | Список литературы: | 41 |
|