2016-02-18 2 views
1

Я реализую одну библиотеку для приложений. Traceview после того, как приложение использует библиотеку, выглядит так: enter image description hereПрофилирование Android: что такое FinalizerDaemon, FinalizerWatchDogDaemon, ReferenceQueueDaemon, Различные вложения и JDWP?

Если я не использую библиотеку, в traceview отображается только основной поток. Итак, каковы эти разные демоны, JDWP и Binders и когда они запускаются ОС Android?

+1

«Так что эти разные Демоны» - они являются частью системы сбора мусора и финализатора, AFAIK. «JDWP» - это ваш отладчик. "and Binders" - это потоки для обработки входящих событий IPC. «Когда они запускаются ОС Android?» - По-видимому, поток JDWP создается как часть отладки вашего приложения. Остальное должно быть разветвлено как часть запуска вашего процесса. – CommonsWare

+0

@CommonsWare: Большое спасибо. Но почему эти демоны запускаются, только если я использую свою библиотеку? если я использую только образец приложения, они не запускаются. GC должен начинаться как минимум один раз, или моя библиотека создает слишком много объектов, которые запускают GC? – codevscolor

+0

«Но почему эти демоны запускаются, только если я использую свою библиотеку?» - бьет меня. Я вижу их все время. – CommonsWare

ответ

1

FinalizerDaemon используется для отмены, если какой-либо финализатор работает дольше.

FinalizerWatchdog - это сервис сторожевой собаки для демона финалиста.

JDWP - это сервис отладки java.

ReferenceQueueDaemon - это поток управления кучей, перемещающий элементы из списка ожидающих коллектора мусора в управляемую опорную очередь.

Не уверен в связующих.

Подробнее на https://android.googlesource.com/platform/libcore/+/a7752f4d22097346dd7849b92b9f36d0a0a7a8f3/libdvm/src/main/java/java/lang/Daemons.java

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