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

Post on 16-Nov-2014

1,086 views 4 download

description

 

transcript

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

Владимир КолесниковMicrosoft@vladkol, vladkol@microsoft.com

Windows Phone Microsoft Corporation

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

Windows Phone Microsoft Corporation

Архитектура

Windows Phone Microsoft Corporation

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

Software Architecture

App Model

Cloud Integration

Services

Hardware Foundation

UI Model

Windows Phone Microsoft Corporation

Software Architecture

App Model

Cloud Integration

Services

Hardware Foundation

UI Model

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

Windows Phone Microsoft Corporation

Software Architecture

App Model

Cloud Integration

Services

Hardware Foundation

UI Model

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

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

Windows Phone Microsoft Corporation

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

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

Windows Phone Microsoft Corporation

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

Windows Phone Microsoft Corporation

hardware

phone storage

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

Your Web ServiceCustom Web Service

Existing Web Services

Microsoft Services

Notification Service

Location Service

Windows Phone Microsoft Corporation

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

storage

sync agent

power monitor

resource manager

task scheduler

connection

manager

Web Service

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

Windows Phone Microsoft Corporation

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

app folder

RW RO

LINQ

app agent

Web Service

hardware

Windows Phone Microsoft Corporation

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

Windows Phone Microsoft Corporation

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

app folder

RW RO

phone storageData Sharing

Surface

LINQ

process boundary

Windows Phone Microsoft Corporation

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

Windows Phone Microsoft Corporation

Perception is reality

Photo by andrewarchy

Windows Phone Microsoft Corporation

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

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

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

+-

Windows Phone Microsoft Corporation

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

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

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

Windows Phone Microsoft Corporation

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

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

приложения

Windows Phone Microsoft Corporation

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

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

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

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

Windows Phone Microsoft Corporation

Running

Deactivated

Dormant

Activated

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

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

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

d

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

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

Windows Phone Microsoft Corporation

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

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

агентов) …

Нельзя

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

Windows Phone Microsoft Corporation

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

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

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

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

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

Windows Phone Microsoft Corporation

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

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

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

состояние

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

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

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

Windows Phone Microsoft Corporation

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

User Interface Thread

Background Threaddispatch

rasterize binding animations

parsingnetworking dispatch

input OS interoplayout

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

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

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

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

Windows Phone Microsoft Corporation

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

Память

OS foreground

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

idle

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

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

Приложения

Windows Phone Microsoft Corporation

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

Память

OS spare foreground

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

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

90MB минимум

Приложения

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

Windows Phone Microsoft Corporation

Батарея

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

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()

}

Windows Phone Microsoft Corporation

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

Zune media service

audio

Zune media service

audio

Zune media service

audio

Память

OS foregroundaudi

o

reserved

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

Windows Phone Microsoft Corporation

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

Память

audioOS foreground

periodic

periodic

on AC on AC

dormant dormant

Zune media service

audio

periodic

Resource manager

on AC

Windows Phone Microsoft Corporation

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

Background transfers

Background transfers

Background transfers

memory

OS foregroundBackground transfers

Resource manager

Windows Phone Microsoft Corporation

Тестирование приложенийruwp7dev@microsoft.com От вас:

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

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

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

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

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

www.msdevcon.ru

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

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

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

Windows Phone Microsoft Corporation

Вопросы

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.