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

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

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

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