SlideShare a Scribd company logo
1 of 18
이수겸 (kenial@cafein.co.kr) Cafein 기술책임 Profiler와 성능 분석을 이용한 고품질 앱 개발
Speaker “윈도우 폰 7 프로그래밍 멘토” 집필 모바일 개발자로 활동 중 2
고품질 앱 개발에 필요한 준비물   윈도우 폰 “Mango” 개발 도구 향상된 에뮬레이터 Profiler 3
Topics 향상된 에뮬레이터앱 성능 분석과 성능 개선
향상된 에뮬레이터 H.264, AAC 미디어 포맷 지원 메모리 모델 변경 메모리 파편화(fragmentation)를 실제 기기처럼 처리함 센서 지원 가속도계와 위치 서비스 5
Demo 에뮬레이터 – 가속도계, 위치 서비스 지원
Topics 향상된 에뮬레이터앱 성능 분석과 성능 개선
윈도우 폰 앱의 성능 요소 스레드 모델 그래픽 스택 Frame rate 애니메이션 미디어 네트워크 UI 모델 레이아웃, 가상화 데이터 바인딩 스크롤 8
데스크톱의 스레딩 모델 9 layout input rasterize binding animations OS interop User Interface Thread parsing networking dispatch dispatch Background Thread
WP의 스레딩 모델 10 composite onto back buffer primitive animations Compositor Thread touch rasterize binding OS interop layout User Interface Thread parsing networking dispatch dispatch Background Thread
WP “Mango”의 경우 11 Touch Thread composite onto back buffer primitive animations Compositor Thread rasterize binding OS interop layout User Interface Thread parsing networking dispatch dispatch Background Thread
레이아웃 처리과정 12 트리 Invalidate? Layout Again Measure… Arrange… 트리 Invalidate?
성능에 대한 불만 프로그램이 멈칫거리거나, 메인화면 진입에 오래 걸리거나, 터치 스크롤에 잘 반응하지 않거나, 사용할 수 없을 정도로 느리거나, 실행 도중 갑자기 죽는다거나, …. 13
그렇다면 지금 필요한 것은? IntegratedProfiler 14
Demo Profiler를 통한 성능 분석
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

Similar to WP7 프로파일러와 성능 분석을 이용한 고품질 앱 개발

제품 설계에서 제조 프로세스까지 하나의 통합 플랫폼으로, Fusion 360
제품 설계에서 제조 프로세스까지 하나의 통합 플랫폼으로, Fusion 360제품 설계에서 제조 프로세스까지 하나의 통합 플랫폼으로, Fusion 360
제품 설계에서 제조 프로세스까지 하나의 통합 플랫폼으로, Fusion 360Daniel Kim
 
판교 개발자 데이 – AWS 인공지능 서비스를 활용하여 스마트 애플리케이션 개발하기 – 박철수
판교 개발자 데이 – AWS 인공지능 서비스를 활용하여 스마트 애플리케이션 개발하기 – 박철수판교 개발자 데이 – AWS 인공지능 서비스를 활용하여 스마트 애플리케이션 개발하기 – 박철수
판교 개발자 데이 – AWS 인공지능 서비스를 활용하여 스마트 애플리케이션 개발하기 – 박철수Amazon Web Services Korea
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)Sang Don Kim
 
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5Manyoung Cho
 
2011년도 원광대학교 컴퓨터공학과 소개자료
2011년도 원광대학교 컴퓨터공학과 소개자료2011년도 원광대학교 컴퓨터공학과 소개자료
2011년도 원광대학교 컴퓨터공학과 소개자료창여 김창여
 
Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)Gamebryo
 
AWS Amplify를 이용한 웹과 모바일 간의 쉬운 데이터 동기화 및 AI 서비스를 활용한 모바일 개발 - 정창호, AWS 솔루션즈 아키...
AWS Amplify를 이용한 웹과 모바일 간의 쉬운 데이터 동기화 및 AI 서비스를 활용한 모바일 개발 - 정창호, AWS 솔루션즈 아키...AWS Amplify를 이용한 웹과 모바일 간의 쉬운 데이터 동기화 및 AI 서비스를 활용한 모바일 개발 - 정창호, AWS 솔루션즈 아키...
AWS Amplify를 이용한 웹과 모바일 간의 쉬운 데이터 동기화 및 AI 서비스를 활용한 모바일 개발 - 정창호, AWS 솔루션즈 아키...Amazon Web Services Korea
 
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)강 민우
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망Vong Sik Kong
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망gueste9d250
 
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결VMware Tanzu Korea
 
DEC2010 Track C-2 실버라이트로 시작하는 윈도우폰7의 만남
DEC2010 Track C-2 실버라이트로 시작하는 윈도우폰7의 만남DEC2010 Track C-2 실버라이트로 시작하는 윈도우폰7의 만남
DEC2010 Track C-2 실버라이트로 시작하는 윈도우폰7의 만남Hyeon Cheol Pak
 
AWS CLOUD 2017 - 인공 지능과 클라우드와의 만남: Amazon의 신규 AI 서비스 (김무현 솔루션즈 아키텍트)
AWS CLOUD 2017 - 인공 지능과 클라우드와의 만남: Amazon의 신규 AI 서비스 (김무현 솔루션즈 아키텍트)AWS CLOUD 2017 - 인공 지능과 클라우드와의 만남: Amazon의 신규 AI 서비스 (김무현 솔루션즈 아키텍트)
AWS CLOUD 2017 - 인공 지능과 클라우드와의 만남: Amazon의 신규 AI 서비스 (김무현 솔루션즈 아키텍트)Amazon Web Services Korea
 
수화 인식 자동 번역 iOS 앱 프로젝트 제안서
수화 인식 자동 번역 iOS 앱 프로젝트 제안서수화 인식 자동 번역 iOS 앱 프로젝트 제안서
수화 인식 자동 번역 iOS 앱 프로젝트 제안서Anna Kim
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 jeong seok yang
 
1760019_남경현_종합학술제.pptx
1760019_남경현_종합학술제.pptx1760019_남경현_종합학술제.pptx
1760019_남경현_종합학술제.pptxssuser14c6cd
 
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망Wonsuk Lee
 
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망Wonsuk Lee
 
빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵r-kor
 
실전 윈도우폰 망고 앱 디자인 & 개발 II
실전 윈도우폰 망고 앱 디자인 & 개발 II실전 윈도우폰 망고 앱 디자인 & 개발 II
실전 윈도우폰 망고 앱 디자인 & 개발 IImosaicnet
 

Similar to WP7 프로파일러와 성능 분석을 이용한 고품질 앱 개발 (20)

제품 설계에서 제조 프로세스까지 하나의 통합 플랫폼으로, Fusion 360
제품 설계에서 제조 프로세스까지 하나의 통합 플랫폼으로, Fusion 360제품 설계에서 제조 프로세스까지 하나의 통합 플랫폼으로, Fusion 360
제품 설계에서 제조 프로세스까지 하나의 통합 플랫폼으로, Fusion 360
 
판교 개발자 데이 – AWS 인공지능 서비스를 활용하여 스마트 애플리케이션 개발하기 – 박철수
판교 개발자 데이 – AWS 인공지능 서비스를 활용하여 스마트 애플리케이션 개발하기 – 박철수판교 개발자 데이 – AWS 인공지능 서비스를 활용하여 스마트 애플리케이션 개발하기 – 박철수
판교 개발자 데이 – AWS 인공지능 서비스를 활용하여 스마트 애플리케이션 개발하기 – 박철수
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
 
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
 
2011년도 원광대학교 컴퓨터공학과 소개자료
2011년도 원광대학교 컴퓨터공학과 소개자료2011년도 원광대학교 컴퓨터공학과 소개자료
2011년도 원광대학교 컴퓨터공학과 소개자료
 
Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)
 
AWS Amplify를 이용한 웹과 모바일 간의 쉬운 데이터 동기화 및 AI 서비스를 활용한 모바일 개발 - 정창호, AWS 솔루션즈 아키...
AWS Amplify를 이용한 웹과 모바일 간의 쉬운 데이터 동기화 및 AI 서비스를 활용한 모바일 개발 - 정창호, AWS 솔루션즈 아키...AWS Amplify를 이용한 웹과 모바일 간의 쉬운 데이터 동기화 및 AI 서비스를 활용한 모바일 개발 - 정창호, AWS 솔루션즈 아키...
AWS Amplify를 이용한 웹과 모바일 간의 쉬운 데이터 동기화 및 AI 서비스를 활용한 모바일 개발 - 정창호, AWS 솔루션즈 아키...
 
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망
 
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
 
DEC2010 Track C-2 실버라이트로 시작하는 윈도우폰7의 만남
DEC2010 Track C-2 실버라이트로 시작하는 윈도우폰7의 만남DEC2010 Track C-2 실버라이트로 시작하는 윈도우폰7의 만남
DEC2010 Track C-2 실버라이트로 시작하는 윈도우폰7의 만남
 
AWS CLOUD 2017 - 인공 지능과 클라우드와의 만남: Amazon의 신규 AI 서비스 (김무현 솔루션즈 아키텍트)
AWS CLOUD 2017 - 인공 지능과 클라우드와의 만남: Amazon의 신규 AI 서비스 (김무현 솔루션즈 아키텍트)AWS CLOUD 2017 - 인공 지능과 클라우드와의 만남: Amazon의 신규 AI 서비스 (김무현 솔루션즈 아키텍트)
AWS CLOUD 2017 - 인공 지능과 클라우드와의 만남: Amazon의 신규 AI 서비스 (김무현 솔루션즈 아키텍트)
 
수화 인식 자동 번역 iOS 앱 프로젝트 제안서
수화 인식 자동 번역 iOS 앱 프로젝트 제안서수화 인식 자동 번역 iOS 앱 프로젝트 제안서
수화 인식 자동 번역 iOS 앱 프로젝트 제안서
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트
 
1760019_남경현_종합학술제.pptx
1760019_남경현_종합학술제.pptx1760019_남경현_종합학술제.pptx
1760019_남경현_종합학술제.pptx
 
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망
 
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망
 
빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵
 
실전 윈도우폰 망고 앱 디자인 & 개발 II
실전 윈도우폰 망고 앱 디자인 & 개발 II실전 윈도우폰 망고 앱 디자인 & 개발 II
실전 윈도우폰 망고 앱 디자인 & 개발 II
 

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

  • 1. 이수겸 (kenial@cafein.co.kr) Cafein 기술책임 Profiler와 성능 분석을 이용한 고품질 앱 개발
  • 2. Speaker “윈도우 폰 7 프로그래밍 멘토” 집필 모바일 개발자로 활동 중 2
  • 3. 고품질 앱 개발에 필요한 준비물 윈도우 폰 “Mango” 개발 도구 향상된 에뮬레이터 Profiler 3
  • 4. Topics 향상된 에뮬레이터앱 성능 분석과 성능 개선
  • 5. 향상된 에뮬레이터 H.264, AAC 미디어 포맷 지원 메모리 모델 변경 메모리 파편화(fragmentation)를 실제 기기처럼 처리함 센서 지원 가속도계와 위치 서비스 5
  • 6. Demo 에뮬레이터 – 가속도계, 위치 서비스 지원
  • 7. Topics 향상된 에뮬레이터앱 성능 분석과 성능 개선
  • 8. 윈도우 폰 앱의 성능 요소 스레드 모델 그래픽 스택 Frame rate 애니메이션 미디어 네트워크 UI 모델 레이아웃, 가상화 데이터 바인딩 스크롤 8
  • 9. 데스크톱의 스레딩 모델 9 layout input rasterize binding animations OS interop User Interface Thread parsing networking dispatch dispatch Background Thread
  • 10. WP의 스레딩 모델 10 composite onto back buffer primitive animations Compositor Thread touch rasterize binding OS interop layout User Interface Thread parsing networking dispatch dispatch Background Thread
  • 11. WP “Mango”의 경우 11 Touch Thread composite onto back buffer primitive animations Compositor Thread rasterize binding OS interop layout User Interface Thread parsing networking dispatch dispatch Background Thread
  • 12. 레이아웃 처리과정 12 트리 Invalidate? Layout Again Measure… Arrange… 트리 Invalidate?
  • 13. 성능에 대한 불만 프로그램이 멈칫거리거나, 메인화면 진입에 오래 걸리거나, 터치 스크롤에 잘 반응하지 않거나, 사용할 수 없을 정도로 느리거나, 실행 도중 갑자기 죽는다거나, …. 13
  • 14. 그렇다면 지금 필요한 것은? IntegratedProfiler 14
  • 15. Demo Profiler를 통한 성능 분석
  • 16. Profiler 요약 IDE에 통합됨 Visual, Code, Memory Profiler 성능 분석 미리 정의된 패턴을 기반으로 분석 단계별 분석 16
  • 17. 참고 : “Mango”의 성능 향상 스크롤 및 터치 입력 이미지 디코딩 성능 향상 가비지 컬렉션 성능 향상 메모리 최적화 17
  • 18. © 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.

Editor's Notes

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