현재 Appl.실행/종료시 화면전환 느려지는 증상 (누가봐도 평상시보다 Appl. 속도가 느려진 경우) 에 대한 원인 분석중입니다.
보통 CPU부하(Clock 수 높아질경우), Memory 부하가 생길때 Appl. 실행/종료 속도가 느려진 것으로 파악되는데,
이러한 화면 전환 속도가 느려지는 상황 및 원인에 대해 좀더 객관적이고 논리적으로 설명해주실 분있으면 설명을 부탁드립니다.
(참고로, 전 휴대폰 S/W QA팀 담당자입니다)
PS. 공지사항 다 읽었습니다.
논리적일지모르고 아직 학부생 수준이니 참고바랍니다^^;
"앱구동중 화면이 느려진다" 고 하신 관점에서 먼저 답을 드리자면,
예를들어 우리는 컴퓨터에서 윈도우 창의 크기를 줄였다 늘렸다 하는것을 할수있습니다.이때 윈도우창이 늘어났다 작아졌다 하는것을
볼 수 있는것은 컴퓨터가 지속적으로 랜더링을 하고있는것이지요.
사진을 연속으로찍고 나열하면 동영상이 되듯이 그와같은 작업을 컴퓨터는 계속해서 해주고있는것이고
그런것을 보는 사용자는 윈도우 창이 작아졌다 커졌다 보이는것입니다.
앱에서의 화면이동도 마찬가지 입니다. 컴퓨터와같이 계속해서 화면을 지웠다 바꿔줬다 지웠다 바꿔줬다를 눈에 보이지 않을정도로
빨리 구현을 하고있는것이지요.
이러한 랜더링속도가 느려진다는것은 앱구동이 느려진다는 의미이고 답답하다는 느낌까지 가는것입니다.
원인은 윗분들이 말씀하신대로 여러가지 원인이 있습니다.
이러한 계산작업을 해주는 CPU의 한계일수도 있고 메모리용량에 따른 하드웨어적문제도 있겠구요
최적화문제같은 경우나 "자바"라는 언어가 가진 속도의 한계점일수도 있습니다.(항상 그렇다는건 아니지만요^^)
최적화 여부를 확인할수있는 방법이란건 코드를 짜는 개발자들만이 코드를 보고 알수있겠지만
아무래도 최적화라함은 불필요한 계산은 줄이고 필요한 계산은 빨리하고 이런것이 아닐까 싶네요^^
그것에 대한 처리가 개발자가 작성한 코드에 잘되어있느냐 안되어있느냐에 대한 얘기로 이어나갈수있구요 ㅎ




논리적으로 설명은 못드리지만... 참고로 말씀드리자면
안드로이드에서 돌아가는 dalvik VM(jvm)의 특성상, 자바의 특성도 되겠네요.
c계열 언어처럼 객체를 release시켜서 메모리 관리를 개발자가 직접 하는게 아니라
(물론 자바도 그런 경우가 있지만, 간과하시는 분들이 많습니다.)
가상머신의 garbage collector(철자 맞나..ㅠ)가 하게됩니다.
자바 초기보다 많이 개선되기는 했으나 아직도 신뢰성이 좀 떨어진다고 생각됩니다.
그러므로 쓰면 쓸수록 시스템에 뭔가 계속해서 쌓이게 되고.. 뭐 그런겁니다.
(반대로 죽어서는 안되는 것들도 죽여주는 경우가 있어요.)
그래서 iOS는 나온지 거의 2년이 다되가는 아이폰3GS에서도 쌩쌩 돌아가는거죠.
물론 그만큼 개발이 어렵거나 손이 많이가는 환경입니다.
제생각이지만 결론은.. 자바의 태생적인 한계입니다.
요즘 컴퓨터도 쓰다보면 뻑뻑 가버리는데 폰이라고 안그럴 리 없겠죠. 자바 특성상 더 그렇구요
(아 물론 자바라는 언어 정말 우수하고, 매력있고, 범용성있는 언어입니다. 성능상의 차이는 다들 인정하실겁니다.)
상담쪽이신거 같은데 소비자들은 이런 언어의 한계라는걸 이해하기 힘들겁니다.
이해 시키기도 힘들구요.
질문자님께선 어느정도 이해 하시겠지만
이걸 소비자한테 어떻게 이해시키는가가 포인트입니다. 스마트폰 관련 클레임
상대하기 무지 짜증납니다. 저도 앱때문에 소비자 클레임 많이 들어오는데
구할수 없는 기기갖고 안된다고 뭐라 하면 정말 답이 없습니다..
아.. 답변이 점점 삼천포로 흘러가네요. 다시 결론은
꼬우면.. 아이폰 쓰라고 하세요.(ㅈㅅ)