Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Similar to 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) (20)

Advertisement

More from YoungSu Son(20)

Recently uploaded(20)

Advertisement

모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)

  1. 모바일 앱 성능분석 방법 (안드로이드/ 실 사례 중심으로) ONYCOM 손영수
  2. • 8 • 0 ( • 0 8 . • 0 ) 8
  3. #
  4. .
  5. .
  6. ( ) )
  7. () ()# 0 1 . 기본 제약들 서버 모바일 상시 전원 공급 ● X CPU / GPU 쿨러 (발열 방지) ● X 앱이 돌아가는 환경 단일 OS/ 디바이스 파편화 OS 버전 업데이트 (주체) 개발/운영사가 제어 플랫폼 회사 / 소비자 제어 배포 주도권 / 반영 시간 개발 ,운영사 / 즉시 소비자 / 2~7일 (안할수도 있음)
  8. # 022. /
  9. 1 % 0 .
  10. ,
  11. ) ) ( ( Governor (거버너) 상세 설명 ) / q f U t D v cU m ) / sn ) /mX ( ) d wOf a m i F C ) / r f Ip ( . ) / P f f v cU e . U v c t F U r v c t F . . d U F U o t v c Ip 출처: http://dreamlog.tistory.com/4 [꿈꾸는 사람.]
  12. n ./ -./ -: : o a et ./ Cbp U G ct g d rrv i hja s e ua 2 5 5: : o iP >> * 085 >0 5 > 1 : 0 : ./ 0 -./ 5: :
  13. #
  14. ,/ , ./ P C I O ? R
  15. .
  16. T ( . ) / , O B De B F I F h ca / . / b ?
  17. . ) ( Wear Leveling 전 Wear Leveling 후
  18. 6 / . 1 . ? / 1
  19. # 0 .
  20. #
  21. 밧데리의 수명은 제한적 제조사의 고민 • 오래 사용하기 위해 전력 소비량을 낮추던가? • 동일한 전력을 계속 공급해 성능은 유지하지만, 2,3시간 만에 방전 되던가?
  22. 앞으로 다가올 모바일에 가장 큰 변화는..
  23. NPU 와 Neural Network API
  24. 어디까지 클라우드 도움없이 모바일에서 AI 연산을 할 수 있을까? 샤오미가 적용한 시나리오 AI Camera Single Lens Bokeh Image Super Resolution Scene Recognition Voice Image Style Transfer Translation
  25. 싱글 렌즈의 단점 극복 (3D 효과) 또는 깨진 이미지 복원
  26. 화면 인식 Environment Landscape Plants Human/Objects 25 labels, recognition of up to 206 scenes sunny overcast cloudy night snow candlelight grass tree succulent flower autumn scene maple leaf sunrise/sunset waterside city building cardog foodcat portrait/ backlight/ silhouettePPTfile
  27. Image Super Resolution
  28. 이미지 스타일 변신
  29. #
  30. Facebook 의 redex 프로젝트에 영향을 받는 것으로 추정. http://bit.ly/2GGNuA4
  31. #
  32. 모바일 QA = 사전 테스트 + 사후 크래시 분석
  33. 현재 모바일 앱 품질 확보 방안
  34. . Android iOS
  35. CPU & GPU Memory NetworkStorage Method Trace Layout (60fps) Wake Locks Over Draws Animations Job Schedulers.. GC Object Allocations Caching Background/Foregrou nd Policy BITMAP Optimization.. Batch (Job Scheduler) Pre Patching Data Compression Response Time Traffic, Packet, Error, Dropped In/Out File I/O SQL Lite Operations IOPS CPU / GPU Governor VSync Wear Leveling Seq , Random Read/Write Speed Battery Power Consumption WWAN(HSPA, LTE, WiMAX..) Peak Bit Rate / Throughput MAX Wear Leveling Seq , Random Read/Write Speed
  36. #
  37. . ,
  38. G t G G l / + , . C f C a t J G G t f r e l d v G
  39. ) ( (
  40. C L G R .<; - ; .<; C L G R .<; - ; M = ; > = ;( = ; ) ; ; S .>
  41. C ea ( k f R C C = C C 1; C C 1C< =3 C ; C, ; C) ; C G =3 C ; C, > ; C ) c .- g C e S L C=mk M 3 C 2 Q l PM G mQ h i 2 fQ lW i nR
  42. R e b hM , 2 2 2 2 . S G 2 2 2 2 2 2m O S M , 2 2 2 2 a Q r c d u m WM j P a Q c , u C n , u C hM 2. 2 2 2 2 2 2 2 2 2 2m O M 2. 2 2 2 2 , 2 2 2 2b R k o G M a t d u g . 21 2 S fWM , , 2. . . 2 2 2 2 2 2
  43. (다른작업도 쓰레드로 진행가능) & & &
  44. .
  45. , , S ,. , , G G S G B R G B R R G C )( A !
  46. 변경된 메모리 Workflow
  47. 변경한 이유.. (Intel의 연구) Object Size 분포 (Bytes)
  48. 변경한 이유.. (Google Map 사 례) Object Life Time (1세대에서 대부분 걸러짐) 살아남는 % GC 실행횟수
  49. 추가적인 기교들을 더함. • ( k , yc s • -. c w T R c u • CP i R yc vm • tD vA ri e s Avm • py ) T M k e l Gi aw ) . O c M m
  50. Android L부터 GC 전략 추가 • CMS (기본전략) • Mark-Sweep 전략을 유지하되 성능을 향상 시키는 방법 • Mark-Sweep 의 느린 속도를 해결하기 위해 병렬, 부분, 이전 세대에만 생성된 것을 제 거하는 방식 등이 종합적으로 적용함. • SS : Semi Space (aka From Space To Space) • 빠른 GC 방법 / 단 메모리는 많이 사용하는 방법 -> 단 첫 GC의 정확도는 Mark-Sweep 보다 낮은 문제가 있음. • 2개의 Semi Space 를 만들어서 정리하는 방법 • GSS : Generation Semi Space • Semi Space를 세대별로 하는 방법.
  51. .
  52. . 0 /. 0 5 Foreground gc (화면 담당) Background gc (백드라운드 담당)
  53. Foreground gc는 동시다발적으로 진행.
  54. Background gc는 Semi-Space (#1)
  55. Background gc는 Gen Semi- Space (#2)
  56. Background gc는 CMS (#3)
  57. / / / Foreground GC (화면 담당) Background GC (백드라운드 담당) • ( . ) G o M> o r S > B G d G M> o r S n e F • - . ) B g m G t FC yc mk G - - au pk
  58. 왜 Oreo부터 Foreground / Background GC를 Concurrent Compaction 으로 단일화 하려고 할까?
  59. 줄어든 App Size, LOS/ ROS의 성공적인 도입, 멀티 코어 디바이스 확대
  60. Background gctype 은 언제든지 변경 (기본 gc 설정은 제조사 마음) • To disable background compaction do: • adb shell setprop dalvik.vm.backgroundgctype CMS • To enable: • adb shell setprop dalvik.vm.backgroundgctype SS
  61. MemFree vs MemoryAvailable. cat /proc/meminfoOS 메모리 정보는 MemFree보다 MemAvailable을 이용하세요. MemFree: The amount of physical RAM, in kilobytes, left unused by the system. MemAvailable: An estimate of how much memory is available for starting new application
  62. # #
  63. ( ) 10
  64. 3 . 0
  65. . , , 0 , 3 , 3 D A L
  66. 30 I . . + 03 C + + . + . A H https://developer.android.com/guide/topics/graphics/hardware-accel.html http://blog.danlew.net/2015/10/20/using-hardware-layers-to-improve-animation-performance/
  67. 0 0 R 5 0 5 A ? ) .C GP ( . M 0 0
  68. . CPU & GPU Memory NetworkStorage UI Rendering Time (Native, Web) Event GC Pause Time Memory Allocation Wear Level HTTP Response Time Traffic In/Out File I/O SQL Lite Operations IOPS CPU / GPU Governor VSync Wear Leveling Seq , Random Read/Write Speed Battery Power Consumption WWAN(HSPA, LTE, WiMAX..) Peak Bit Rate / Throughput MAX Wear Leveling Seq , Random Read/Write Speed
  69. # .
  70. 데이터를 수집하는 방법
  71. 주요 수집 데이터 • RL O B C B • ( / N ) • / • / • B A A • PI M • BB A • F
  72. 어떻게 수집하나? • ): B + : @ : / : • -. .A CC : / / B / / C/ A A CC : (
  73. 운영 대시보드
  74. 성능 대시보드
  75. - 106 - 모바일 에서는 왜 DevOps가 필요해 졌나. (모바일) 파편화된 모바일 환경에서 어떻게 품질을 확보 해야지? (노트2의 점유율)
  76. - 107 - 모바일 에서는 왜 DevOps가 필요해 졌나. (모바일) Xiaomi 폰의 국내 점유율 4위
  77. 앱의 성능 기준
  78. • CPU Usage • M EM O RY Usage
  79. Netw ork Usage URL 설 명
  80. UI Rendering UI Rendering
  81. 설명 – 화면이 뜨고 나서 시간 순서대로 스택정보 나열 14ms : 화면이 뜰때 초기하는 작업들이 너무 많음 236ms : 현 순간에도 화면 레이아웃을 구성하고 있는 중 1397ms : 화면의 프레임이 다 그려지지 않아 UI Thread에서 대기 하는 상황
  82. 문제 상황 A사 SDK HealthData에서 데이터를 받아오느라 화면 전체(UI Thread) 가 멈추는 상황이 발생함. 항상 로컬에 이전 데이터를 저장해서 먼저 보여주고, 사용자가 클릭시 정보를 가져오는 것으로 하는 것이 좋음 즉 인터넷이 연결되지 않아도 이전 데이터를 볼수 있도록 먼저 가이드라인을 잡기를 권고함.
  83. 고려 상황 화면 점유시간 3초 이상 화면을 다시 그리는 (Resume) 하는 상황에서, 화면 단에서 FileIO가 발생함 리소스 폰트를 가져오는 상황에서 지연이 발생되는 것으로 판단됨.
  84. /
  85. ) . ! AA ( : : @ ( : OH G NU // @ / @ / @ @ @ P KT Y A : A @ & @
Advertisement