ݺߣ

ݺߣShare a Scribd company logo
이수겸 (kenial@cafein.co.kr)Cafein기술책임Profiler와 성능 ѫ을 이용한 고품질 앱 개발
Speaker“윈도우 폰 7 프로그래밍 멘토” 집필모바일 개발자로 활동 중2
고품질 앱 개발에 필요한 준비물  윈도우 폰“Mango” 개발 도구향상된 에뮬레이터Profiler3
Topics향상된 에뮬레이터앱 성능 ѫ과 성능 개선
향상된 에뮬레이터H.264, AAC 미디어 포맷 지원메모리 모델 변경메모리 파편화(fragmentation)를 실제 기기처럼 처리함센서 지원가속도계와 위치 서비스5
Demo에뮬레이터 – 가속도계, 위치 서비스 지원
Topics향상된 에뮬레이터앱 성능 ѫ과 성능 개선
윈도우 폰 앱의 성능 요소스레드 모델그래픽 스택Frame rate애니메이션미디어네트워크UI 모델레이아웃, 가상화데이터 바인딩스크롤8
데스크톱의 스레딩 모델9layoutinputrasterizebindinganimationsOS interopUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread
WP의 스레딩 모델10composite onto back bufferprimitive animationsCompositor ThreadtouchrasterizebindingOS interoplayoutUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread
WP “Mango”의 경우11Touch Threadcomposite onto back bufferprimitive animationsCompositor ThreadrasterizebindingOS interoplayoutUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread
레이아웃 처리과정12트리 Invalidate?Layout AgainMeasure…Arrange…트리 Invalidate?
성능에 대한 불만프로그램이 멈칫거리거나,메인화면 진입에 오래 걸리거나,터치 스크롤에 잘 반응하지 않거나,사용할 수 없을 정도로 느리거나,실행 도중 갑자기 죽는다거나,….13
그렇다면 지금 필요한 것은?Գٱ𲵰ٱʰǴھ14
DemoProfiler를 통한 성능 ѫ
Profiler 요약IDE에 통합됨Visual, Code, Memory Profiler성능 ѫ미리 정의된 패턴을 기반으로 ѫ단계별 ѫ16
참고 : “Mango”의 성능 향상스크롤 및 터치 입력이미지 디코딩 성능 향상가비지 컬렉션 성능 향상메모리 최적화17
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related Content

WP7 프로파일러와 성능 ѫ을 이용한 고품질 앱 개발

Editor's Notes

  • #3: 앱의 성능은 실제 사용자들에게 좋은 반응을 얻기 위해 꼭 필요한 요소이다.기본적으로 실제 장치가 가장 좋은 테스트 환경이다. 에뮬레이터가 아닌 실제 기기에서 테스트하라.컴퓨터의 성능이 에뮬레이터에 영향을 미치며, 네트워크의 반응도 다르고, 디버거가PC에서 별도로 작동하는 것이 앱의 수행 성능을 정확히 가늠하는데 도움이 된다.망고 업데이트에는 os자체의 다양한 성능 개선 사항이 추가되어, 사용자는 망고 업데이트를 사용하는 것만으로도 앱 자체의 품질이 향상된 것을 느낄 수 있다. 또한 고품질의 앱을 개발할 수 있도록 지원하는 개발 환경이 추가되었다. 에뮬레이터와 프로파일러가 그것인데, 자세히 살펴보도록 하자.
  • #4: 앱의 성능은 실제 사용자들에게 좋은 반응을 얻기 위해 꼭 필요한 요소이다.기본적으로 실제 장치가 가장 좋은 테스트 환경이다. 에뮬레이터가 아닌 실제 기기에서 테스트하라.컴퓨터의 성능이 에뮬레이터에 영향을 미치며, 네트워크의 반응도 다르고, 디버거가PC에서 별도로 작동하는 것이 앱의 수행 성능을 정확히 가늠하는데 도움이 된다.망고 업데이트에는 os자체의 다양한 성능 개선 사항이 추가되어, 사용자는 망고 업데이트를 사용하는 것만으로도 앱 자체의 품질이 향상된 것을 느낄 수 있다. 또한 고품질의 앱을 개발할 수 있도록 지원하는 개발 환경이 추가되었다. 에뮬레이터와 프로파일러가 그것인데, 자세히 살펴보도록 하자.
  • #6: GC와 관련된 이슈. 지금도 에뮬레이터와 디바이스의 메모리 특성이 동일하지는 않다.에뮬레이터에서 가속계와 위치 서비스를 지원한다. Shake motion도 지원함
  • #9: UI 스레드, 백그라운드(작업자) 스레드그래픽스택; 화면이 얼마나 redraw가 일어나는가네트워크 ; 3G의 접속 속도등에 좌우받을 수 있다. 예를 들어 망고에서는 WebClient클래스가 수정되었는데, UI 스레드에 영향을 주던 부분이 고쳐졌다.UI 모델 ; 여러 종류의 컴퍼넌트가 있고, 렌더링되는 방법에 따라 성능이 천차만별일 수 있다.
  • #10: UI 스레드와 백그라운드 스레드로 구분된다.
  • #11: 기본 애니메이션을 처리하는 상위 스레드가 존재한다.
  • #12: 스크롤 관련 이슈가 많았다. 사용자의 터치 입력을 처리하는 스레드를 따로 둠으로써 사용자 경험을 최대한 개선하고자 하였다.
  • #13: 무거워지는 원인!Layout관련 함수가 호출되면서, 시각 트리가Invalidate되어 다시 그려야 할 경우, Measure와 Arrange 함수를 통해 시각 트리의 구성 요소들의 크기 변화나 위치 변화 등 시각적 변화가 일어난다. 프레임의 콜백 함수를 통해 시각 트리에 변화가 일어나면, 다시 레이아웃 관련 함수의 호출이 반복된다.가장 비용을 우선해야 하는 부분
  • #14: 앱의 성능은 실제 사용자들에게 좋은 반응을 얻기 위해 꼭 필요한 요소이다.
  • #17: 그 외의 것들Multi-tasking Debugging supportFAS/Tombstoning Debugging supportIsolated Storage ExplorerScreen shot Tool ??
  • #18: 스크롤 및 입력로드중에UI가 멈추는 고질적인 문제가 해결이미지 디코딩 성능 향상을 통한 로딩 속도 개선이미지를 http로 가져올 때 UI 스레드의 블록 현상이 없어짐GC의 향상 ; 메모리 최적화