Введение в ThreadLeakMonitor
Используется для мониторинга проблемы утечки потоков приложения. Основной принцип работы:
Область применения ThreadLeakMonitor:
Доступ к ThreadLeakMonitor:
repositories {
mavenCentral()
}
dependencies {
implementation "com.kuaishou.koom:koom-thread-leak:${latest_version}"
implementation "com.kuaishou.koom:xhook:${latest_version}"
}
Использование:
val config = ThreadMonitorConfig.Builder()
.enableThreadLeakCheck(30 * 1000L, 60 * 1000L) // Установить интервал опроса равным 30 с, а период задержки утечки потока — 1 мин.
.setListener(listener)
.build()
MonitorManager.addMonitorConfig(config)
ThreadMonitor.startTrackAsync()
ThreadMonitor.stop()
ThreadLeakListener
, чтобы получить информацию об утечках:val listener = object: ThreadLeakListener {
override fun onReport(leaks: MutableList<ThreadLeakRecord>) {
leaks.forEach {
MonitorLog.i(ThreadLeakTestActivity.LOG_TAG, it.toString())
}
}
override fun onError(msg: String) {
MonitorLog.e(ThreadLeakTestActivity.LOG_TAG, msg)
}
}
Часто задаваемые вопросы: — Почему устройства ниже Android N не поддерживаются? — Учитывая потерю производительности при мониторинге потоков и распространённость проблем с потоками, мониторинг только устройств выше Android N должен решить большинство проблем. — Почему не поддерживается armeabi-v7a? — При получении стека выделения памяти мы использовали FP Unwind (frame pointer unwind) из соображений производительности; в то время как armeabi-v7a использует смешанные инструкции ARM/Thumb, в то время как FP Unwind ненадёжен на смешанном методе стека инструкций ARM/Thumb. — ABI AArch32 (Arm 32-bit Architecture) также не определяет поведение FP.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )