Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 기록으로 실력을 쌓자
- kotlin querydsl
- kotlin coroutine
- Java
- IntelliJ
- Pinpoint
- 정보처리기사 실기 기출문제
- 티스토리챌린지
- AWS EKS
- MySQL
- AI
- 코틀린 코루틴의 정석
- 오블완
- CloudWatch
- Elasticsearch
- CKA 기출문제
- kotlin spring
- mysql 튜닝
- APM
- Kubernetes
- minikube
- Linux
- 정보처리기사실기 기출문제
- aws
- 공부
- PETERICA
- CKA
- kotlin
- 정보처리기사 실기
- Spring
Archives
- Today
- Total
피터의 개발이야기
[kotlin] 코틀린 코루틴 디버깅 옵션설정 방법 본문
반응형
ㅁ 들어가며
ㅇ 코루틴의 디버깅을 하기 위해서는 코루틴의 Job, Dispatchers, Context 정보를 확인해야 한다.
ㅇ 비동기처리를 위한 다양한 코루틴의 방식을 이해하기 위해서 필요한 기본 정보를 출력할 수 있어야 한다.
ㅇ 이를 위한 디버깅 방법을 정리하였다.
ㅁ 기본 디버깅 방법: Debuging Mode
fun main() = runBlocking<Unit> {
println("[${Thread.currentThread().name}] 디버깅 테스트")
}
/*
[main] 디버깅 테스트
*/
ㅇ 메인 스레드의 이름만 나올 뿐 Coroutine의 내용을 확인하기 어렵다.
ㅇ 실행 시 Debug 모드로 실행
ㅇ Coroutine의 Job과 Dispatcher를 확인할 수 있다.
ㅁ 코루틴의 디버깅 옵션 설정: Debugging using logging
ㅇ 오른쪽 상단에 Run Configurations에서 Edit Configurations를 클릭한다.
ㅇ Edit configuration templates를 클릭한다.
ㅇ Kotlin을 선택하고 VM options을 입력한다.
-Dkotlinx.coroutines.debug
ㅇ 이렇게 하면 신규로 생성하는 Run Configuration에 기본적으로 디버깅 옵션이 적용된다.
ㅇ 기본에 생성된 설정에도 VM 옵션을 추가하였다.
fun main() = runBlocking<Unit> {
println("[${Thread.currentThread().name}] 디버깅 테스트")
}
/*
[main @coroutine#1] 디버깅 테스트
*/
ㅇ 디버깅 시 Coroutine의 정보도 함게 확인할 수 있다.
ㅁ 실행시간 추가
fun main() = runBlocking<Unit> {
val startTime = System.currentTimeMillis()
println("[${Thread.currentThread().name}][${chapter4.code8.getRunTime(startTime)}] 디버깅 테스트")
delay(1000L)
launch(Dispatchers.IO) {
println("[${Thread.currentThread().name}][${chapter4.code8.getRunTime(startTime)}] 코루틴 실행")
}
}
fun getRunTime(startTime: Long): String = "실행시간: ${System.currentTimeMillis() - startTime}ms"
/*
[main @coroutine#1][실행시간: 0ms] 디버깅 테스트
[DefaultDispatcher-worker-1 @coroutine#2][실행시간: 1027ms] 코루틴 실행
*/
ㅇ 할당된 스레드의 이름과 코루틴의 정보, 실행시간을 출력하는 샘플이다.
ㅇ 비동기처리를 위한 다양한 코루틴의 방식을 이해하기 위해서 필요한 기본 정보를 출력할 수 있다.
ㅁ 함께 보면 좋은 사이트
반응형
'Programming > Kotlin' 카테고리의 다른 글
[kotlin] 코틀린 코루틴의 정석 - 무제한 디스패처(Unconfined Dispatcher) (0) | 2024.06.14 |
---|---|
[kotlin] 코틀린 코루틴의 정석 - 코루틴의 동작 원리(Coroutine과 Continuation) (0) | 2024.06.13 |
[kotlin] 코틀린 코루틴의 정석 - CoroutineScope의 start 옵션 (0) | 2024.06.10 |
[kotlin] 코틀린 코루틴의 정석 - 비동기 다중 스레드 시 공유 데이터 정합성 문제 (1) | 2024.06.08 |
[kotlin] 코틀린 코루틴의 정석 - 코루틴의 이해 (0) | 2024.06.07 |
Comments