Хотя технически это определяется как новый независимый стандарт, с нашей точки зрения WebAssembly — это формат байт-кода для asm.js (asm.js используется для развертывания кода Unity на WebGL). По сравнению с используемыми в настоящее время текстовыми форматами, байт-код значительно снижает размер кода, составленный на asm.js. Это приводит к более быстрой загрузке кода, и, что более важно, дает возможность разобрать и скомпилировать код гораздо быстрее с меньшими затратами памяти. Это позволит улучшить время запуска крупного кода JavaScript и уменьшить его требования к памяти — два аспекта, о которых наиболее часто спрашивают разработчики, ориентированные на WebGL.
Мы планируем переключить Unity WebGL на вывод байт-кода сразу, как только будут выпущены браузеры с поддержкой WebAssembly. В браузерах, которые изначально не поддерживают эту функцию, байт-код может быть очень эффективно переведен в текстовый код asm.js, используя технологию JavaScript. Это в большинстве случаев по-прежнему способствует быстрой загрузке содержимого из-за улучшения времени загрузки.
Экспериментируя с прототип WebAssembly на сборке нашей демки AngryBots, мы увидели, что размер генерируемого кода JavaScript уменьшился с 19,0 Мб asm.js кода (при gzip-сжатии 4,1 Мб) до 6,3 Мб WebAssembly кода (при gzip-сжатии 3,0 Мб). Это означает, что объем данных, который браузер должен обработать, снизился в 3 раза, а при gzip-сжатии снизился в 1,4 раза. Результаты могут изменяться в зависимости от проекта, но мы ожидаем увидеть очень существенные улучшения, поэтому никому не придется беспокоиться о развертывании WebGL в Unity.
Для получения более подробной информации о WebAssembly см. FAQ здесь.
В свете этого заявления мы хотели бы дать дальнейшие обновления о текущем состоянии нашей работы над WebGL, изменениях в экосистеме, которые мы ожидаем в течение следующего года, и о том, над чем мы сейчас работаем, что включают в себя дальнейшее улучшение размера сборки, SIMD.js, Shared Array Buffers (которые добавляют поддержку потоков в JavaScript) и WebGL 2.0. Итак, я хотел бы пригласить вас обсудить наш роадмап WebGL в форуме этого поста, где имеется много дополнительной информации.
Если вы будете на Unite Europe в Амстердаме на следующей неделе, посмотрите мой доклад о WebGL в среду, или можете встретиться со мной, чтобы задать вопросы.
Is this article helpful for you?
Thank you for your feedback!