+ All Categories
Home > Technology > Производительность и энергопотребление мобильных...

Производительность и энергопотребление мобильных...

Date post: 16-Nov-2014
Category:
Upload: andrew-mayorov
View: 1,086 times
Download: 4 times
Share this document with a friend
Description:
 
47
Производительность и энергопотребление мобильных приложений Владимир Колесников Microsoft @vladkol , [email protected]
Transcript
Page 1: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Производительность и энергопотребление мобильных приложений

Владимир КолесниковMicrosoft@vladkol, [email protected]

Page 2: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Производительность и энергопотребление• Общая архитектура системы• Потоковая модель• Многозадачность• Состояние• Потребители

Page 3: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Архитектура

Page 4: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Архитектура с высоты птичьего полёта

Software Architecture

App Model

Cloud Integration

Services

Hardware Foundation

UI Model

Page 5: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Software Architecture

App Model

Cloud Integration

Services

Hardware Foundation

UI Model

Page 6: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

ЖелезоCapacitive touch4 or more contact pointsSensorsA-GPS, Accelerometer, Compass, Light, Proximity, GyroCamera5 mega pixels or more

MultimediaCommon detailed specs, Codec acceleration

Memory256MB RAM or more, 8GB Flash or more

GPUDirectX 9 acceleration

CPUQualcomm MSM7x30, MSM8x55 800Mhz or higher

80

0

480

Hardware buttons | Back, Start, Search

Page 7: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Software Architecture

App Model

Cloud Integration

Services

Hardware Foundation

UI Model

Page 8: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Hardware Foundation

Архитектура подсистемы приложений

Applications

App Model

App managementLicensingChamber isolationSoftware updatesData sharing

UI Model

Shell frame Session managerDirect3DCompositor

Kernel

SecurityNetworkingStorage

Cloud Integration

Xbox LIVEBingLocationPush notificationsWindows Live ID

Your App UI and logic

Hardware BSP

A-GPS Accelerometer Gyro Compass Light Proximity

Media Wi-Fi Radio Graphics

Frameworks

HTML5/JavaScript

CLR

Silverlight and XNA

Structured dataUser data

Page 9: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Платформа приложений - Framework

Common Base Class Library

Collections ComponentModel Configuration

Diagnostics

Reflection IO

Security Threading

Runtime Resources Globalization TextLocation Net

ServiceModel Linq

Application Object

Silverlight Presentation and Media XNA Frameworks for Games

Windows Phone Frameworks

NavigationShapes Markup Media

Controls DrawingIsolatedStorag

e

AudioMedia GraphicsInput

DrawingGamerService

s

Content

PhoneApplicationPage

PushNotification

WebBrowserControl

SensorsPhoneApplicationFra

me

CameraDevice

IntegrationLaunchers &

ChoosersWindows Phone

ControlsMultiTasking

Structured Data

Silverlight4.0

Silverlight Integration

Sockets

Page 10: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Как это работает

Page 11: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Модель среды исполнения

«Песочница» для каждого приложения

Хост-процесс для приложений

Каждое приложение работает в изолированной среде

Весь код – managed, что позволяет легко верифицировать – первый заслон для аттак

Framework отвечает за взаимодействия с app-моделью, UI-моделью и «телефоном»

App Domain

XNA Game Object

CLR

App Model Host

Silverlight XNA HTML5/JavaScript

Silverlight Application Object

Frameworks

Kernel Hardware BSP

App Model UI Model Cloud Integration

App managementLicensingChamber isolationSoftware updates

Shell frame Session managerDirect3DCompositor

Xbox LIVEBingLocationPush notificationsWindows Live ID

SecurityNetworkingStorage

Hardware Foundation

A-GPS Accelerometer Gyro Compass Light ProximityMedia Wi-Fi Radio Graphics

AGENT

Page 12: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Metro и контентно-ориентированная модель

Page 13: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

hardware

phone storage

Контентно-ориентированная модель: проблемы

Your Web ServiceCustom Web Service

Existing Web Services

Microsoft Services

Notification Service

Location Service

Page 14: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Как это работаетapp

storage

sync agent

power monitor

resource manager

task scheduler

connection

manager

Web Service

Page 15: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Структурированное хранилище (БД) и ввод/вывод

SD Metric Target Card A

Card B

Card C

64KB seq. writes/sec

4 17 9 2

64KB seq. reads/sec

8 26 15 7

4KB write IOPs 20 87 3 57

4KB read IOPs 500 1054 1022 373

app folder hardware

Page 16: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Структурированное хранилище в Mango

app folder

RW RO

LINQ

app agent

Web Service

hardware

Page 17: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Приложения и изоляция данных телефона

Page 18: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Mango: запросы к данным телефона

app folder

RW RO

phone storageData Sharing

Surface

LINQ

process boundary

Page 19: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

User Experience и многозадачность

Page 20: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Perception is reality

Photo by andrewarchy

Page 21: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Что такое мультизадачность Красивый UI Используйте

телефон по максимуму

Не заставляйте меня ждать

+-

Page 22: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Подходы к многозадачности «Честная» и прожорливая

Работаем, пока можем Система сложных правил выгрузки приложенийDesktop, Windows Mobile, Android

Мнимая и экономная Приложение выгружается при деактивации UI Ключевой фактор – сохранение состоянияРанние iPhone, Windows Phone 7

Page 23: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Подходы к многозадачности

Умная Похожа на мнимую Фоновые агентыiPhone 4, Windows Phone codename “Mango” Возможны уведомления из агентов в

приложения

Page 24: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Мультизадачность в Windows Phone

Мультизадачность

Быстрое переключение

Быстрое восстановление

Page 25: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Running

Deactivated

Dormant

Activated

Автоматическое сохранение состояния

Загружено или восстановлено

Приложение в памяти, ресурсы «отключены», потоки приостановленыTombstone

d

Жизненный цикл

Page 26: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Мультизадачность: вариантыЗадача РеализацияПереключение задач пользователем Fast App Switching

Уведомления и сигналы по расписанию

Background Notification

Загрузка фалов Background Transfer

Уведомления о событиях Push Notifications

Регулярные действия по расписаниюtoast/tile updates; data pre-caching; etc.

Periodic Background Agent

Проигрывание музыки Background Audio Player

Синхронизация данных Resource-Intensive Agent

GPS-tracking Run under the lock screen

Page 27: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Что могут Background AgentsМожно

Tiles Toast Местоположение Сеть Файлы БД Аудио (через спец.

агентов) …

Нельзя

Показывать UI XNA Микрофон и камера Сенсоры

Page 28: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Сохраняем UX удобным

Плавность 60 кадров в секунду

Качественное воспроизведение сложного медиа Hardware-акселерация

Минимизация деградации производительности со временем Изоляция и меры по экономии батареи

Управление состоянием Память и процессор

Page 29: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Важно: система знает, как устроен UI

Навигационный стек, данные страницы и приложения сохраняются для быстрого восстановления

СтраницаВизуальное

состояние

Данные страницы и

приложения, навигация

Состояние данных

Page 30: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Потоковая модель на десктопах

User Interface Thread

Background Threaddispatch

rasterize binding animations

parsingnetworking dispatch

input OS interoplayout

Page 31: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Текущая потоковая модель Windows Phone

User Interface Thread

Background Thread

Compositor Thread

dispatch parsingnetworking dispatch

rasterize binding

primitive animations

touch OS interoplayout

composite onto back buffer

Page 32: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Windows Phone codename “Mango”

User Interface Thread

Background Thread

Compositor Thread

dispatch parsingnetworking dispatch

rasterize binding

primitive animations touch

OS interoplayout

composite onto back buffer

Page 33: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Сохраняем UX удобным: CPU в WP7 Поток Приоритет Квант

Rendering Above Normal

6ms

UI Normal 4ms

Тип Периодичность

Animations Every 16ms

Video Every 33-41msData

bindingEvery 20-100ms

Touch Every 32-100msBackgrou

ndNormal 2ms Various N/A

Qualcomm Snapdragon: 1GHz

idleidle

Page 34: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Сохраняем UX удобным: CPU в MangoПоток Приоритет Квант

Rendering Above Normal

8ms

UI Normal 20ms

Тип Периодичность

Animations Every 16ms

Video Every 33-41ms

Touch Every 32-100ms

Data binding

Every 20-100ms

Background

Normal 4ms Various N/A

idle

Qualcomm Snapdragon: 800MHz-1GHz

Page 35: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Сохраняем UX удобным: память в WP7

Память

OS foreground

Минимум памяти: 256MB

idle

Рекомендуется 90MB

Навигационный стекФайловый кэшПериодика

Приложения

Page 36: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Сохраняем UX удобным: память в Mango

Память

OS spare foreground

Минимум памяти: 256MB

выгружаются по запросу

90MB минимум

Приложения

ПриложенияНавигационный стекФайловый кэшПериодика

Page 37: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Батарея

Page 38: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Сохраняем UX удобным: батарея

+-

Resource CPU Display

Audio

Video

3G data

Wi-Fi

GPS

Sensors

Power (mW)

>400

>150 300 800 750 600 350 varies

Page 39: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

UI instance

Достигаем баланса через агентов

app logic

agent instance

app logic

Затраты

10% CPURAM: 5MBПониженное энергопотребление

Затраты

90% CPURAM: 90MB

Энергоемки

Одна «песочница»Отдельные хост-процессы

abstract class BackgroundAgent

{

virtual void Invoke(uri, parameters)

virtual void OnCancel()

void NotifyComplete()

void Abort()

}

Page 40: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Аудио-агенты

Zune media service

audio

Zune media service

audio

Zune media service

audio

Память

OS foregroundaudi

o

reserved

Page 41: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Generic-агенты

Zune media service

audio

periodic

Resource manager

Zune media service

audio

periodic

Resource manager

on AC

Zune media service

audio

Память

OS foregroundperiodi

cperiodi

c

on AC on AC

audio

Page 42: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

«Дремлющие» приложения

Память

audioOS foreground

periodic

periodic

on AC on AC

dormant dormant

Zune media service

audio

periodic

Resource manager

on AC

Page 43: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Агенты передачи данных

Background transfers

Background transfers

Background transfers

memory

OS foregroundBackground transfers

Resource manager

Page 44: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Тестирование приложений[email protected] От вас:

Название и описание приложения Скриншоты Видео работы в эмуляторе

От нас Устройство на 1-2 недели Поддержка в публикации приложения

Page 45: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

DevCon 11 – крупнейшая конференция по разработке ПОDevCon 11 – крупнейшая конференция по разработке ПО, проводимая Microsoft в России.

Основные темы конференции DevCon 11:• Облачные вычисления• Мобильная разработка• Веб-разработка• Разработка настольных приложений• Корпоративная разработка• Работа с данными• Будущее языков программирования• Построение Интернет-бизнеса

Лучшие докладчики Microsoft:• Нил Лесли • Тим О’Брайн• Евгений Чигиринский • Максим Гольдин • Дмитрий Артёмов

www.msdevcon.ru

26-27 мая 2011 года, Подмосковье

Телемост со Скоттом Гатри – Вице-президентом по

платформе разработки Microsoft и одним основателей .NET

Page 46: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

Вопросы

Page 47: Производительность и энергопотребление мобильных приложений на примере Windows Phone 7

Windows Phone Microsoft Corporation

© 2011 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.


Recommended