Измерение скорости работы с холстом (canvas)

Original author: Dion Almaer
  • Translation
[скриншот FreeCiv]

Команда Freeciv.net измерила скорость работы кода их игры на холсте. Это единый итог, и проверяет он больше, чем сам холст, так как в игре действует масса кода. Поэтому в итоге измерялась и скорость исполнения конкретной ветви джаваскрипта, и скорость рендеринга на холсте.

Вот результаты:

[скриншот результатов]

С Беспином у нас получались несколько другие результаты, и основою узкого места было блитирование холста. И были внесены оптимизации в холст по итогам первой стадии Беспина, так что разные браузеры сыграют в чехарду друг с дружкою. Желаю приятного времяпровождения :)
Примечания переводчика:

1) Internet Explorer 8 не поддерживает <canvas>, а библиотека Excanvas оказалась излишне тормознутою, так что разработчики игры FreeCiv сочинили собственный узкоспециализированный костыль на джаваскрипте, DHTML и элементах <div> с отсечением их фона. Его скорость и тестировалась в IE8.

2) Грузинский флаг на скриншоте :-)

Similar posts

Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 40

    +17
    Предвидя негодование: «Opera supports the HTML5 canvas element, but other Javascript incompatibilities made it impossible to run these benchmarks in Opera 10»
      –7
      Ага, главное ведь что — прорекламировать Firefox и заявить, что Opera не поддерживает Canvas :)

        +11
        Опера не поддерживает вывод текста на канву, так что на этот раз все по честному.
          +1
          Ок, тогда нет претензий. Просто я так и не смог найти проблему, которая не позволила сделать игрушку под Оперу.
            +8
            удивительно, что канвас через адскую эмуляцию в ie8 сделать смогли а вывод текста через слой в опере — нет
              0
              А текст всегда будет слоем поверх изображения? Я не вижу нормального способа частичной эмуляции. Либо все, либо ничего.
                0
                эмулировать можно используя свойство clip
                www.w3.org/TR/CSS21/visufx.html#propdef-clip
                и прочие штуки
                  0
                  Да ладно, много можно наклипать, когда поверх текста прозрачная png кладется?
                +2
                Самое обидное, что эта штука уже реализована, но пока не в публичных сборках (
                Поэтому посоревноваться в скорости работы этого приложения не получается.
                А Canvas у нас очень быстрый ;)
                  0
                  а почему бы не показать тем ребятам внутреннюю сборку?
                    +4
                    Лучше просто подождать.
                    0
                    Вы это, SVG допилите, оок? Я там накатал баги на тему того, что модуляризация XML в SVG приводит к корявому рендерингу HTML элементов и невозможности их использовать.
                      0
                      Мы-то допилим. Если баги смертельные, что прям вообще, то отправьте мне номера багов в личку — я поставлю в копию нужных людей.
                        0
                        Кхм… Что-то я не могу найти. Стёр наверное реплаи…
                      0
                      Странно, а редактор Bespin уже работает в последних сборках 10.5
                      Что тут не хватает тогда?
                        0
                        Говорят «вывод текста в Canvas»… Хотя в том же Bespin'е вроде текст.
                      +4
                      Наверное потому что IE пользуются больше людей чем оперой. Лично я разработчиков оперы не понимаю, проблем с их браузером очень много, не скажу что больше чем с IE но сравнимо точно.
                      0
                      А что насчёт Bespin'а?
                      Он работает.
                        0
                        Не смотрел, не могу сказать. Но ты же сам ответил выше, что сборок выводом текста на канву в публичном доступе нет ;)
                          +1
                          I'll try to explain why Opera currently isn't supported by Freeciv.net:
                          During initial development of the project, Opera support was comparable
                          to Firefox in both features and performance. Then some new features were introduced, and suddenly the performance degraded seriously in Opera.
                          I believe that is was caused by the way we reference the tileset PNG images
                          which are sent to the canvas' drawImage() method. It is possible to run the web client using Opera 10, if you change your user-agent string to Firefox.
                          So it could be some bug in our Javascript code, og a bug in Opera's canvas implementation.

                          The good news is that this is an open source project, so anyone can
                          contribute a patch which solves the performance problems in Opera.
                          If Opera is interested in helping resolve this issue, that would be awesome.

                          The mapview rendering code can be found here:
                          code.google.com/p/freeciv-forever/source/browse/trunk/freeciv-web/src/main/webapp/javascript/mapview.js

                          — Andreas Røsdal

                          code.google.com/p/freeciv-forever/updates/list
                        0
                        Выяснилось, что таки-поддерживает. Посему вопрос о поддержке открыт.
                        А в коде игры прямо написано что-то вроде if( !window.opera ) …

                        www.robodesign.ro/coding/canvas-primer/20081208/example-text.html
                        0
                        На счет фоска. Я думаю тут следующее. Они его выделили, так как сами разрабатывают игру под фоксом. И следовательно именно в нем больше всего все работает идеально, а потом подгоняется под остальные.
                        Я тоже советую фокс т.к. в нем уверен на 100%, хотя сам им не пользуюсь.
                        Ясен смысл догадки? Хотя может и реклама.
                        0
                        жаль, а на опере сижу )
                        0
                        Как-то мало вариаций браузеров. А где FF36 под линукс?
                          +4
                          Кто желает, кстати, тот может сам намерять в каком угодно браузере из числа поддерживаемых этой игрою (Opera 10 не поддерживается, например): вон там лежат инструкции по входу в игру и запуску средств измерения.
                          0
                          Очевидное-невероятное
                            +7
                            Охохо, спасибо за наводку на freeciv.
                              +5
                              никто не любит оперу :( даже под ие сделали костыль…
                                +1
                                прочитал «измерение скорости работы с хостом»
                                  +1
                                  IE8 не должен быть в этом списке и на графике. У него нет поддержки канвы, и тест для него не показателен.
                                    0
                                    Оригинал:
                                    The Freeciv.net crew has benchmarked a path in their canvas game. It is one data point, and tests more than just Canvas itself because a lot of code is running in the game. Thus, it ends up testing the union of a particular Javascript path and the rendering of the canvas.

                                    Я конечно понимаю, что всех сам график интересует больше, чем приятно построенные предложения на русском языке. Ну стыдно же должно быть…
                                    Итоговый график не проверяет, а показывает, и в итоге НЕ «измерялась и скорость исполнения конкретной ветви джаваскрипта и скорость рендеринга на холсте.»
                                    Здесь показан суммарный результат в виде фпс и среднего времени рендеринга кадра…
                                      +1
                                      Сверху почему-то написано «Chrome 3.0-Linux», хотя в таблице просто более ранний билд 4.0
                                        0
                                        Чего-то не выходит у меня на freeciv.net игру начать. Просто пустое чёрное пространство, и ничего не происходит. Не понятно.
                                          0
                                          тоже было. просто вышел и обратно зашел — завелось. там на черном экране должно появится лог подключения к игре.
                                          0
                                          под макосью не тестировали? Вообще, по информации от разработчиков, вебкит и геко плавно переходят на композицию элементов старницы через gpu. По-идее, это должно дать приличный прирост скорости, так как пропадет необходимость гонять пиксели из видеопамяти в обычную и обратно. Ну и cpu освободится, сможет больше времени тратить например на джаваскрипт.
                                            0
                                            Опять хабр нагрузил по гланды очередной веб-проект до такой степени, что тот еле работает?
                                              0
                                              Интуитивно не запускаю IE… Но верстать под него приходится :(
                                                +1
                                                • UFO just landed and posted this here
                                                    +3
                                                    Скучаю по Civilization, но боюсь запускать, а то реальный мир так и останется не захваченным…

                                                    Only users with full accounts can post comments. Log in, please.