-
Kotlin if vs when 성능 비교 ?etc/코틀린_안드로이드 2022. 9. 29. 20:17
1. if 문 when 문 비교
1 .Java 에서 switch 문은 컴파일러가 lookup table 을 만들어 준다 .
Lookup table 이란 , index 가 저장된 테이블로 jvm 에서 빠르게 값을 찾아서 가져온다.
if else 를 이용한 구문에서는 jump 가 들어가고 이는 평균적으로 switch 문보다 느리다.
Kotlin 에서 when 문의 byte code 를 Decompile 한것을 보면
Compile 전 Kotlin 코드
fun strNum(x: Int?): String { return when (x) { 1 -> "one" 2 -> "one" else -> "??/" } }
Decompile Java 코드
public static final String strNum(@Nullable Integer x) { String var10000; if (x != null) { if (x == 1) { var10000 = "one"; return var10000; } } if (x != null) { if (x == 2) { var10000 = "one"; return var10000; } } var10000 = "??/"; return var10000; }
Android studio 의 decompile 이 마음에 들지 않으면 다음을 보자>> /kotlinapp1/app/build/tmp/kotlin-classes
? 못찾겠디 두둥
결론 : Kotlin if vs when 큰 성능 차이 없음 , Java 쓰자.
https://stackoverflow.com/questions/6705955/why-switch-is-faster-than-if
'etc > 코틀린_안드로이드' 카테고리의 다른 글
Kotlin Basic grammer (0) 2022.10.06 Kotlin Android Class (0) 2022.10.06 Kotlin Nullable (0) 2022.09.29 Deep in to Kotlin(feat .android) (0) 2022.09.27 코틀린 자바 장단점 비교, Kotlin vs Java (1) 2022.09.25