JPDA MethodEntryEvent заставляет приложение работать очень медленно
Я пытаюсь захватить все вызовы методов, сделанные в любом приложении для Android. Для этого я использую JDI, чтобы зарегистрировать MethodEntryRequest для каждого работающего потока приложения. Мне удалось это сделать, но я столкнулся с проблемой, что приложение становится очень очень медленным. Поэтому я хочу знать, делаю ли я что-то не так в своей реализации. Я добавляю свой код, где я сначала регистрирую ClassPreparedRequest, чтобы отследить загрузку каждого класса процессом приложения, и в этом я регистрирую MethodEntryRequest с threadfilter для потока, который вызвал загрузку класса.
if(!traceMap.keySet().contains(event.thread()))
{
EventRequestManager mgr = vm.eventRequestManager();
MethodEntryRequest menr = mgr.createMethodEntryRequest();
menr.setSuspendPolicy(EventRequest.SUSPEND_NONE);
menr.addThreadFilter(event.thread());
menr.enable();
}
Код для регистрации ClassPreparedRequest есть
ClassPrepareRequest cpr = mgr.createClassPrepareRequest();
cpr.addClassFilter("com.example.*");
cpr.setSuspendPolicy(EventRequest.SUSPEND_NONE);
cpr.enable();