Компиляция приложения в облаке
На конференциях по Windows Phone регулярно задают вопросы о том, как ведут себя приложения после установки на устройство. Дело в том, что если говорить о Silverlight приложениях, то они поставляются в виде xap пакета, который содержит промежуточный код, понятный только управляемой платформе .NET Framework. После установки приложения, оно проходит компиляцию на конкретном устройстве и кэшируется для того, чтобы в следующий раз система смогла запустить уже готовую откомпилированную версию. Утилита, которая позволяет провести предварительную компиляцию кода, называется Native Image Generator (NGEN) и является стандартной для .NET Framework на любой платформе. Таким образом, производительность при запуске Silverlight приложений никак не затрудняется платформой, исключая только первый запуск. Тут вызывается NGEN, что может существенно увеличить время ожидания пользователя и оказать влияние на мнение пользователя о приложении.
Чтобы исключить проблему компиляции при первом запуске, Windows Phone 8 получает уже откомпилированное приложение. Разработчик, как и раньше, загружает в Windows Phone Store свой пакет, а Store обеспечивает компиляцию этого пакета в облаке. Для десктоп систем предварительную компиляцию в общем случае было реализовать невозможно, так как уж очень разное оборудование у пользователей, а .NET Framework компилирует приложения, оптимизируя их под конкретное устройство. Но ведь телефоны, как бы это цинично не звучало, все одинаковые. Точнее имеют минимальные требования к аппаратной части, что позволяет выполнить предварительную компиляцию заранее. Вот этим и воспользовались в Windows Phone 8. Причем предварительная компиляция работает и для тех приложений, которые разработчики загружают на основе Windows Phone 7.x. В этом случае в магазине хранится две версии приложения. Если пользователь пробует установить приложение на устройство, например, Windows Phone 7.5, то тут выбирается тот .xap, который загрузил разработчик. А вот если у пользователя Windows Phone 8, то выбирается откомпилированная версия.
А ссылку на источник можно?
Anton Polhovskiy (@Polhovskiy)
22.11.2012 at 19:31
Уверен, что на билде должны были рассказывать. Сессии про перформанс копай. В документации я не нашёл.
Sergiy Baydachnyy
22.11.2012 at 21:11
Как раз сегодня смотрел её 😉
Anton Polhovskiy (@Polhovskiy)
23.11.2012 at 18:20