-
Notifications
You must be signed in to change notification settings - Fork 1
차트 라이브러리 메모리 누수 점검
ootr47 edited this page Dec 14, 2023
·
4 revisions
지금은 해결됐지만 PriceGuard 앱에서 메모리 누수가 발생했었다.
메모리 누수가 발생할 것이라고 예상하지 못했기 때문에 당황스러웠다.
PriceGuard에서 leakcanary로 테스트할 시 차트 라이브러리를 사용한 부분에서 메모리 누수는 발견되지 않았지만
차트 라이브러리 프로젝트에서도 예상치 못한 부분에서 메모리 누수가 존재할까봐 메모리 누수 점검을 하고자 하였다.
PriceGuard와 유사한 상황에서 테스트를 진행하기 위해서 다음과 같은 테스트 방식으로 진행하였다.
-
2개의 Fragment 각각 차트를 생성하고 화면 전환 반복
-
지속적인 터치 이벤트
화면 전환의 경우 다음과 같은 코드로 작성함으로써 프래그먼트가 재생성될 때 문제가 없는지 확인하고자 히였다.
button1.setOnClickListener {
val fragmentA = FragmentA()
supportFragmentManager.beginTransaction()
.replace(R.id.example_fcv, fragmentA)
.commit()
}
button2.setOnClickListener {
val fragmentB = FragmentB()
supportFragmentManager.beginTransaction()
.replace(R.id.example_fcv, fragmentB)
.commit()
}
해당 조건으로 Profiler를 통해 메모리 사용량을 확인 결과 메모리 누수는 일어나지 않았다.


따라서 차트 라이브러리에는 메모리 누수가 존재하지 않는 것으로 확인하였다.