My understanding ( and experience) is that coroutines are pretty light, but, the CPU profiler in Android Studio was quite helpful for me, just, when you're looking at thread names, bear in mind that IO and Default actually share a threadpool under the hood, so "default" tagged threads may be used by the IO dispatcher if they're free