Как я могу узнать, сколько потоков использует Dispatchers.IO в настоящее время?
Как вы можете прочитать здесь, Dispatchers.IO
не имеет собственного пула потоков, он использует общий пул. Dispatchers.Default
использует тот же пул потоков. Нет простого способа получить активные потоки, используемые в настоящее время Dispatchers.IO
. Но вы можете попробовать получить количество потоков внутри общего пула потоков. Общий пул потоков CommonPool.kt
внутри CommonPool.kt
. Он может создать собственный пул или использовать ForkJoinPool. Все потоки, созданные в пуле, имеют определенное имя. Таким образом, вы можете найти все активные потоки общего пула по имени.
val threads = Thread.getAllStackTraces().keys.filter {
it.name.startsWith("CommonPool") || it.name.startsWith("ForkJoinPool")
}
threads.size
Вы можете использовать Android Profiler для мониторинга потоков.
Инструменты Android Monitor были заменены на Android Profiler в Android Studio 3.0:
Android Profiler - Android Studio 3.0 включает в себя новый набор инструментов для устранения проблем с производительностью в вашем приложении. Мы полностью переписали предыдущий набор инструментов Android Monitor и заменили их на Android Profiler. После развертывания приложения на работающем устройстве или эмуляторе щелкните вкладку Android Profiler, и теперь у вас будет доступ к унифицированному представлению о процессоре, памяти и сети для вашего приложения в режиме реального времени....
Для мониторинга потоков используйте CPU Profiler в Android Profiler.
- Нажмите " Вид"> "Инструменты Windows"> "Android Profiler" (вы также можете нажать " Android Profiler" на панели инструментов).
- Выберите устройство и процесс приложения, которые вы хотите профилировать на панели инструментов Android Profiler. Если вы подключили устройство через USB, но не видите его в списке, убедитесь, что вы включили отладку по USB.
- Щелкните в любом месте на временной шкале ЦП, чтобы открыть Профилировщик ЦП.