Искать на сайте Unity

Тестирование производительности WebGL

15 декабря 2015 г. через Технологии | 4 мин. читать
Охваченные темы
Поделиться

Is this article helpful for you?

Thank you for your feedback!

Около года назад мы провели тестирование производительности Unity WebGL для различных браузеров. По этой ссылке доступны полученные нами сравнительные оценки. Прошло достаточно много времени, и мы решили провести повторное испытание, чтобы выявить изменения в производительности.

Одной из основных целей тестирования стала система Windows 10 с новым браузером Edge, поддерживающим по умолчанию подмножество asm.js. Мы также включили в тестирование экспериментальную сборку Unity, обеспечивающую многопоточное исполнение кода с помощью компонента Shared Array Buffers. Чтобы оценить будущий прирост производительности, мы испытывали эту сборку в сочетании с новейшей версией Firefox.

Вы можете попробовать обновленный пакет тестов для оценки производительности по этой ссылке.

Untitled 2

Некоторые изменения методики тестирования по сравнению с прошлым годом:

  • Используется обновленная версия сборки тестов, созданная с помощью Unity 5.3. Вы можете скачать ее здесь и поэкспериментировать сами — локально или на других платформах.
  • Мы убрали из этой версии все графические украшения. Они не несли смысловой нагрузки и лишь увеличивали размер сборки. Благодаря этой чистке стало возможным свободное распространение сборки (см. ссылку выше).
  • Мы пропустили тест «Mandelbrot GPU». Он не подходил для сравнительной оценки производительности различных браузеров, так как загружал только графический процессор, и из-за этого смазывались общие результаты тестирования.
  • Также мы опустили сравнение с автономной нативной сборкой. Мы решили, что результаты такого сравнения недостаточно информативны, так как мы используем различный код для разных платформ с использованием несовпадающих настроек (например, различные реализации обработчика сценариев и наборы шейдеров).
  • Версия EdgeHTML 12 (Edge 20.10240.16384.0), использованная при тестировании, не подключает asm.js по умолчанию. На данный момент доступна версия 13, в которой это исправлено, но для испытаний нам пришлось подключать поддержку asm.js вручную.

Далее приведены результаты сравнительного тестирования различных браузеров. Для тестирования использовался компьютер на основе процессора Intel i7 с частотой 3,3 ГГц, с видеокартой NVidia GTX 960 и ОС Windows 10. Тест экспериментальной версии Unity в сочетании с «ночной» сборкой Firefox выделен серым цветом.:

Screen Shot 2015-11-30 at 1.51.33 PM

Также мы провели несколько тестов на ноутбуке производства Apple (Retina MacBook Pro 15" с процессором i7 2,6 ГГц и ОС Mac OS X), чтобы получить сравнительные результаты для Safari:

Screen Shot 2015-11-10 at 11.12.52 AM

Далее приведены детализированные результаты каждого теста, проведенного на Windows. За единицу принят результат теста для 32-битной версии Firefox 41:

Screen Shot 2015-11-30 at 1.52.40 PM

Далее — результаты для OS X (результат для Firefox также принят за единицу):

Screen Shot 2015-11-10 at 10.00.57 AM

Приведем для сравнения результат прошлогоднего тестирования. Тогда также использовался ноутбук Retina MacBook Pro 15" с процессором i7 2,6 ГГц и ОС Mac OS X:

Screen Shot 2015-11-10 at 10.22.29 AM

Наконец, последний график показывает, сколько времени тратится на запуск Unity при использовании различных браузеров. Каждая строка отображает, сколько времени (в секундах) проходит между открытием тестового проекта и завершением рендеринга первого кадра при загрузке с локального диска. Для каждой версии Firefox приведены две строки, представляющие время первого («холодного») запуска с кэшированием результатов сборки asm.js, и последующих («горячих») запусков с пропуском кэширования, которые происходят быстрее:

Screen Shot 2015-11-30 at 1.35.35 PM

Некоторые факты:

  • Наилучших результатов в большинстве тестов из всех публично доступных браузеров достигает 64-битная версия Firefox 42. 32-битная версия заметно уступает в скорости.
  • Edge занимает второе место после Firefox, и в некоторых тестах обходит 32-битную версию. В тестах на производительность рендеринга с использованием библиотеки WebGL Edge превосходит все остальные браузеры.
  • Safari сравним по производительности с Chrome. Прошлогодние тесты показывали значительное превосходство Chrome.
  • Internet Explorer 11 твердо занимает последнее место.
  • Экспериментальная версия Unity с использованием Shared Array Buffers значительно увеличивает производительность, иногда — в несколько раз. Это дает некоторые представления о том, на какие показатели производительности следует ориентироваться в будущем.
  • Производительность Firefox на OS X выросла в среднем на 18% по сравнению с прошлогодними результатами. Отчасти это происходит благодаря оптимизации версии Firefox 41 по сравнению с 32, но главным образом ускорение обязано улучшениям в Unity и в компиляторе emscripten. Производительность на Windows выросла заметнее, так как 64-битные версии Firefox для этой ОС появились недавно, а для OS X существовали уже долгое время и уже использовались в прошлогоднем тестировании.
  • Большинство браузеров загружает тестовый проект за 5–7 с. Firefox способен сократить это время до 1,5–2 с при выполнении горячей загрузки с заранее кэшированной сборкой asm.js.
15 декабря 2015 г. через Технологии | 4 мин. читать

Is this article helpful for you?

Thank you for your feedback!

Охваченные темы
Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.