사이드 프로젝트에 적용한 Compose가 아쉬울 수준의 성능이 자꾸 나와서 성능 비교한 모습이다.
대략 개발자 모드에 있는 렌더링 프로파일로 비교한 모습입니다.
@Composable
fun Greeting(name: List<GridSample>, modifier: Modifier = Modifier) {
LazyVerticalGrid(
columns = GridCells.Fixed(3),
modifier = modifier.fillMaxSize(),
verticalArrangement = Arrangement.spacedBy(4.dp),
horizontalArrangement = Arrangement.spacedBy(4.dp),
contentPadding = PaddingValues(4.dp)
) {
itemsIndexed(
items = name,
key = { _, item -> item.name },
) { _, item ->
Card(
modifier = Modifier.aspectRatio(1f),
colors = CardDefaults.cardColors().copy(
containerColor = item.color
)
) {
Text(text = item.name)
}
}
}
}
data class GridSample(
val name: String,
val color: Color
)
Compose 스펙상 Unbundled
이라서, Release/R8/Profiles이 같이 적용된 상태로 실행시킨 경우 최적이라고 Medium에서 설명하고 있다.
많은 Compose 사용자가 같은 환경은 아니겠지만,
개인적으로는 버벅이니깐 릴리즈로 해보자라고 하는게 좋은 방식일까?? 생각이 든다.
Compose 사용으로 좀 더(?) 심플하게 UI 개발이 가능해졌다. 한동안 조용했던 Android 개발에 새로운 내용이다.
개바자들에게 배포하고 필요한 것을 수집하는 페이즈1 단계가 지금까지였다면, 다음은 라이브러리 지원 + 성능을 끌어올려야 할 페이즈2가 와야 한다.
하루빨리 Compsoe의 Debug에서 성능을 빨리 올리는 방식이 도입되었으면 한다.
comments powered by Disqus
Subscribe to this blog via RSS.
LazyColumn/Row에서 동일한 Key를 사용하면 크래시가 발생하는 이유
Posted on 30 Nov 2024