1 / 47

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

Производительность и энергопотребление мобильных приложений. Владимир Колесников. Microsoft @vladkol , vladkol@microsoft.com. Производительность и энергопотребление. Общая архитектура системы Потоковая модель Многозадачность Состояние Потребители. Архитектура.

morse
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Производительность и энергопотребление мобильных приложений Владимир Колесников Microsoft @vladkol, vladkol@microsoft.com

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

  3. Архитектура

  4. Архитектура с высоты птичьего полёта Cloud Integration Services App Model UI Model Software Architecture Hardware Foundation

  5. Cloud Integration Services App Model UI Model Software Architecture Hardware Foundation

  6. Железо Capacitive touch 4 or more contact points 800 Sensors A-GPS, Accelerometer, Compass, Light, Proximity, Gyro Camera 5 mega pixels or more Multimedia Common detailed specs, Codec acceleration Memory 256MB RAM or more, 8GB Flash or more GPU DirectX 9 acceleration CPU Qualcomm MSM7x30, MSM8x55 800Mhz or higher Hardware buttons | Back, Start, Search 480

  7. Cloud Integration Services App Model UI Model Software Architecture Hardware Foundation

  8. Архитектура подсистемы приложений Applications Your App UI and logic Frameworks HTML5/JavaScript Silverlight and XNA User data Structured data CLR App Model UI Model Cloud Integration App management Licensing Chamber isolation Software updatesData sharing Shell frame Session manager Direct3D Compositor Xbox LIVE Bing Location Push notifications Windows Live ID Kernel Hardware BSP Security Networking Storage A-GPS Accelerometer Gyro Compass Light Proximity Media Wi-Fi Radio Graphics Hardware Foundation

  9. Платформа приложений - Framework Windows Phone Frameworks Launchers & Choosers Windows Phone Controls Camera Device Integration MultiTasking Structured Data PhoneApplicationFrame PhoneApplicationPage PushNotification WebBrowserControl Sensors Silverlight Presentation and Media XNA Frameworks for Games Controls Drawing IsolatedStorage Drawing GamerServices Silverlight Integration Silverlight 4.0 Media Graphics Shapes Markup Navigation Media Audio Content Input Application Object Common Base Class Library Globalization Resources Reflection Location Text IO Runtime Diagnostics Net Sockets Configuration Collections Security Threading ComponentModel ServiceModel Linq

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

  11. Модель среды исполнения App Domain Silverlight Application Object XNA Game Object AGENT Frameworks Silverlight XNA HTML5/JavaScript Хост-процесс для приложений CLR App Model Host App Model UI Model Cloud Integration «Песочница» для каждого приложения A-GPS Accelerometer Gyro Compass Light Proximity Media Wi-Fi Radio Graphics Xbox LIVE Bing Location Push notifications Windows Live ID App management Licensing Chamber isolation Software updates Shell frame Session manager Direct3D Compositor • Каждое приложение работает в изолированной среде Kernel Hardware BSP Security Networking Storage • Весь код – managed, что позволяет легко верифицировать – первый заслон для аттак Hardware Foundation • Framework отвечает за взаимодействияс app-моделью, UI-моделью и «телефоном»

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

  13. Контентно-ориентированная модель: проблемы Your Web Service Custom Web Service Existing Web Services Location Service Microsoft Services phone storage hardware Notification Service

  14. Как это работает app storage Web Service sync agent power monitor resource manager task scheduler connection manager

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

  16. Структурированное хранилище в Mango Web Service app agent RO LINQ RW app folder hardware

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

  18. Mango: запросы к данным телефона RO LINQ RW Data Sharing Surface app folder phone storage process boundary

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

  20. Perceptionis reality Photo by andrewarchy

  21. Что такое мультизадачность • Красивый UI • Используйте телефон по максимуму • Не заставляйте меня ждать - +

  22. Подходы к многозадачности • «Честная» и прожорливая • Работаем, пока можем • Система сложных правил выгрузки приложений Desktop, Windows Mobile, Android • Мнимая и экономная • Приложение выгружается при деактивации UI • Ключевой фактор – сохранение состояния Ранние iPhone, Windows Phone 7

  23. Подходы к многозадачности • Умная • Похожа на мнимую • Фоновые агенты iPhone 4, Windows Phone codename “Mango” • Возможны уведомления из агентов в приложения

  24. Мультизадачность в Windows Phone Мультизадачность Быстрое переключение Быстрое восстановление

  25. Жизненный цикл Загружено иливосстановлено Приложение в памяти, ресурсы «отключены», потоки приостановлены Tombstoned Автоматическое сохранение состояния

  26. Мультизадачность: варианты

  27. Что могут Background Agents Нельзя Можно • Tiles • Toast • Местоположение • Сеть • Файлы • БД • Аудио (через спец. агентов) • … • Показывать UI • XNA • Микрофон и камера • Сенсоры

  28. Сохраняем UX удобным • Плавность • 60 кадров в секунду • Качественное воспроизведение сложного медиа • Hardware-акселерация • Минимизация деградации производительности со временем • Изоляция и меры по экономии батареи • Управление состоянием • Память и процессор

  29. Важно: система знает, как устроен UI Страница Визуальное состояние Данные страницы и приложения, навигация Состояние данных Навигационный стек, данные страницы и приложения сохраняются для быстрого восстановления

  30. Потоковая модель на десктопах layout input rasterize binding animations OS interop User Interface Thread parsing networking dispatch dispatch Background Thread

  31. Текущая потоковая модель Windows Phone composite onto back buffer primitive animations Compositor Thread touch rasterize binding OS interop layout User Interface Thread parsing networking dispatch dispatch Background Thread

  32. Windows Phone codename “Mango” touch composite onto back buffer primitive animations Compositor Thread rasterize binding OS interop layout User Interface Thread parsing networking dispatch dispatch Background Thread

  33. Сохраняем UX удобным: CPU вWP7 idle idle Qualcomm Snapdragon: 1GHz

  34. Сохраняем UX удобным: CPU вMango idle Qualcomm Snapdragon: 800MHz-1GHz

  35. Сохраняем UX удобным: память вWP7 Навигационный стек Файловый кэш Периодика Приложения Память Рекомендуется 90MB OS foreground idle Минимум памяти: 256MB

  36. Сохраняем UX удобным: память вMango Приложения Навигационный стек Файловый кэш Периодика Приложения Память 90MB минимум OS spare foreground выгружаютсяпо запросу Минимум памяти: 256MB

  37. Батарея

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

  39. Достигаем баланса через агентов UI instance abstract class BackgroundAgent { virtual void Invoke(uri, parameters) virtual void OnCancel() void NotifyComplete() void Abort() } Затраты 10% CPU RAM: 5MB Пониженное энергопотребление Затраты 90% CPU RAM: 90MB Энергоемки agent instance app logic app logic Одна «песочница» Отдельные хост-процессы

  40. Аудио-агенты audio audio audio Zune media service Zune media service Zune media service reserved Память OS audio foreground

  41. Generic-агенты on AC periodic periodic audio audio audio Zune media service Zune media service Zune media service Resource manager Resource manager Память on AC on AC OS audio periodic periodic foreground

  42. «Дремлющие» приложения on AC periodic audio Zune media service Resource manager Память on AC on AC OS audio periodic periodic foreground dormant dormant

  43. Агенты передачи данных Background transfers Background transfers Background transfers Resource manager memory Background transfers OS foreground

  44. Тестирование приложенийruwp7dev@microsoft.com • От вас: • Название и описание приложения • Скриншоты • Видео работы в эмуляторе • От нас • Устройство на 1-2 недели • Поддержка в публикации приложения

  45. DevCon11– крупнейшая конференция по разработке ПО • DevCon11– крупнейшая конференция по разработке ПО, проводимая Microsoft вРоссии. • Основные темы конференции DevCon11: • Облачные вычисления • Мобильная разработка • Веб-разработка • Разработка настольных приложений • Корпоративная разработка • Работа с данными • Будущее языков программирования • Построение Интернет-бизнеса • Лучшие докладчики Microsoft: • Нил Лесли • Тим О’Брайн • Евгений Чигиринский • Максим Гольдин • Дмитрий Артёмов Телемост со Скоттом Гатри – Вице-президентом по платформе разработки Microsoft и одним основателей .NET 26-27 мая 2011 года, Подмосковье www.msdevcon.ru

  46. Вопросы

More Related