Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.11.2011, 20:11
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Скорость прорисовки на Canvas
Возник спор:
Что быстрее выполняет код на js ?
1. Рисует 100 простейших фигур с помошью своих станадртных функций (линий)
или
2. Рисует 100 таких же фигур только уже с помошью изображения!
Помогите решить спор!
Я лично думаю, что быстрее отрисует изображения нежели с помошью своих функций!
Ответить с цитированием
  #2 (permalink)  
Старый 17.11.2011, 20:51
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Ваш спор, вы и проверяйте.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #3 (permalink)  
Старый 17.11.2011, 23:23
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Здесь думать бесполезно, надо тестировать
Один тест ты пишешь, второй твой оппонент. Очень даже справедливо, получится !

Мне вот кажется, что изображения на сложных фигурах быстрее, а на простых очень может быть что наоборот. Но на сколько эти фигуры должны быть простыми, я ни сном, ни духом.

Так что клаву в зубы и вперёд, выяснять правоту экспериментально
Всё остальное, пустая болтовня.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 17.11.2011 в 23:30.
Ответить с цитированием
  #4 (permalink)  
Старый 18.11.2011, 03:43
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Цитата:
Рисует 100 таких же фигур только уже с помошью изображения!
Что сделать проще, сто машин из деталей, или сто машин из ста машин?

У canvas и dom задачи хоть и пересекаются, но вообще это разные инструменты для разных целей. Нарисовать что-то из линий без canvas вы не сможете, если речь не идет о svg/vml (не дай бог). А вот в схожих задачах, которые можно реализовать либо через canvas либо через dom, второй чаще проигрывает по скорости. Хотя мой тест был слишком реальный - задник страницы сплошь канва, на ней полупрозрачные элементы летают туда-сюда, на заднем фоне в перспективе "переливается" абстрактный элемент; и тоже самое, но через элементы и dom, второй способ делал прокрутку страницы очень тормозной. Однако у канвы есть и свои минусы - на каком-то нарисованном элементе вы не можете словить событие мыши так же, как вы делаете это в dom.

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

Последний раз редактировалось Андрей Параничев, 18.11.2011 в 03:46.
Ответить с цитированием
  #5 (permalink)  
Старый 18.11.2011, 11:22
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Перерисовка всего холста для анимированного сдвига к примеру 30 блоков в canvas сожрёт больше ресурсов, чем анимированное перемещения родительского блока для этих самых 30 блоков в DOM.
Здесь преимущество в том, что DOM элементы со стороны JS так сказать "рисуются один раз". А дальше за вас всё делаем сам браузер, когда вы меняете элементу тот или иной параметр. При отрисовке же на canvas каждый раз всё делается через JS, что конечно медленнее. Даже в современных реалиях. Проверенно на мобильных платформах.
По этому оценивать просто отрисовку 100 блоков глупо, нужен полноценный бенчмарк. И тогда уже сложнее будет предсказать, кто же победит.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.

Последний раз редактировалось Nekromancer, 18.11.2011 в 11:25.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск Canvas в IE9! Severtain Общие вопросы Javascript 7 11.04.2012 12:36
canvas: working with canvas Severtain Общие вопросы Javascript 0 01.07.2011 17:29
Отправка изображения из canvas на сервер m-mikle Общие вопросы Javascript 1 06.01.2011 20:45
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16
Скорость выполнения кода mycoding Общие вопросы Javascript 6 23.04.2010 13:28