Какая графическая библиотека JavaScript имеет лучшую производительность? - PullRequest
8 голосов
/ 24 марта 2009

Я провожу некоторые исследования для проекта JavaScript, где производительность рисования простых примитивов (то есть линий) на сегодняшний день является главным приоритетом.

Ответы на на этот вопрос предоставляют большой список графических библиотек JS. Хотя я понимаю, что выбор браузера оказывает большее влияние, чем библиотека, я хотел бы знать, есть ли между ними какие-либо различия, прежде чем выбирать один.

Кто-нибудь делал сравнение производительности между любым из них?

Ответы [ 7 ]

8 голосов
/ 25 марта 2009

Обновленный ответ (2019):

Основной совет остается прежним: для максимальной производительности используйте тонкие оболочки или используйте API-интерфейсы браузера, а также избегайте DOM или любой DOM-подобной структуры. В 2019 году это означает, что следует избегать SVG (и любой библиотеки, созданной поверх него), поскольку это может вызвать проблемы с производительностью при попытке быстрого изменения DOM.

Canvas - это готовое решение для высокопроизводительной веб-графики как для 2D, так и для 3D (WebGL) контекстов. Flash мертв, поэтому больше не вариант, но даже если его производительность не соответствовала API-интерфейсу нативного браузера.

Оригинальный ответ (2009):

Если вы не делаете 3d, просто используйте необработанный холст с excanvas в качестве отступника для исследователя. Узким местом будет скорость выполнения JavaScript, а не скорость рендеринга строк. За исключением IE, который будет зависать, когда сцена становится слишком сложной, потому что VML фактически создает dom.

Если вы действительно беспокоитесь о производительности, определенно используйте flash и напишите все это в ActionScript. Вы получите на порядок лучшую производительность, а с Flex SDK вам даже не нужно ничего покупать. Есть несколько приличных библиотек для 3d во flash / flex.

7 голосов
/ 26 апреля 2010

Библиотека JavaScript Рафаэля

http://raphaeljs.com

3 голосов
/ 25 января 2012

До сих пор - используется processing.js (реализация холста javascript языка "Processing") и / или raphael.js (миниатюрная и удобная библиотека JavaScript VML / SVG) .

Рекомендации по производительности зависят от задачи:

  • высокодинамичные, сложные примитивы (или их огромное количество) - холст (пиксели, низкоуровневый API)

  • меньшее количество примитивов, с высокой степенью масштабируемости, интегрировано в DOM - SVG / VML (вектор, API высокого уровня)

3 голосов
/ 24 марта 2009

Ни у одного из них нет хороших показателей. Это 2009 год, и состояние рендеринга программируемой графики в веб-браузерах действительно удручает. Я мог бы повысить скорость взаимодействия на терминале vt125 25 лет назад. Если вы делаете что-то интерактивное, подумайте об использовании Flash ... Иначе я бы выбрал какое-то сложное решение на стороне сервера, в зависимости от ваших потребностей

0 голосов
/ 04 января 2010

Как насчет http://www.jsgl.org? Используется SVG / VML.

0 голосов
/ 24 марта 2009

Я знаю, вы сказали, что браузер оказал большее влияние, так почему бы не использовать оптимизированные вызовы SVG? Тогда он "мог" работать во всех браузерах, но ...

Chrome достаточно надежен для эффективного рендеринга 3D-моделирования:

http://www.chromeexperiments.com/detail/monster/

0 голосов
/ 24 марта 2009

Для базового рисования (такого как линии, круги и многоугольники) я бы порекомендовал Библиотека графики Уолтера Цорна . Он был создан с учетом производительности и работает в огромном количестве браузеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...