Войти
ПрограммированиеФорумВеб

Производительность JS Canvas без opengl (2 стр)

Страницы: 1 2
#15
18:37, 29 янв. 2015

Я же прцитировал
Речи нет об асме
Тот еще гемор

В статье сказано что емскриптен компилит проги в js которые в пять раз медленние оригинальных прототипов на с
Тоесть речь о пятикратном проигрыше жаваскрипта
Я об этом


#16
18:39, 29 янв. 2015

normand
> В статье сказано что емскриптен выдает проги которые в пять раз медленние
> оригинальных прототипов на с
Именно. С чего ты решил, что код на JS и канвасе будет медленее аналогов на С тоже в пять раз? Он будет медленнее раз в сто. Если не в тысячу.

#17
18:42, 29 янв. 2015

Так думаю потому что отрисовка всего канваса это одна легкая операция копирования одного массива
Только копирование буфера кадра который сгенерил жаваскрипт
Вся нагрузка только на жаваскрипт и v8
Канвас при этом фулскрин, тоесть нет нагрузки на ДОМ

#18
19:23, 29 янв. 2015

normand
> Так думаю
Тут не надо думать и предполагать, тут надо написать тест и будет четко видно.

Как раз таки все эти копирования и генереции без asm.js будут работать на порядки медленнее.

#19
20:49, 29 янв. 2015

9К720
Да че ты пристал, пацан хочет оправдать свою лень, глупость и нежелание изучать OpenGL/DX + C++. В этом смысл треда.

#20
20:55, 29 янв. 2015

Ну можно и так сказать
Ни ума ни сил ни времени нет на опенжель и плюсы

#21
11:58, 2 фев. 2015

Рендерить на канвасе особо смысла нет, так как он "слабо контролируемый" и работает по сути синхронно.
В том смысле что нет возможности правильно нагрузить pipeline и все упирается в Vsync/DIP-call.
Итог простой - тоже самое на webgl (pixy имеет враперы для перехода с canvas на webgl) будет работать в 10-100 раз быстрее.
Хотя, стоит признать, некоторые вещи (обводки например) на webgl ложатся сложновато.

#22
13:43, 2 фев. 2015

Кащей, разжуй понятнее пжста

Я рассматриваю только один вариант отрисовки канваса
Это putImageData
Использование только этой одной функции манипуляции пикселами
Тоесть передача в канвас одного массива данных для их отрисовки
Это одна единственная опперация, простейшая и быстрая

Отрисовку этих данных ускоряет железо видеокарты
60 раз в секунду без проблем

Таким образом канвас это просто окно для ускоренной графики
Надо только выдавать ему готовую картинку регулярно

Вся нагрузка вычислений ложится на жаваскрипт и v8 и CPU
И если они успевают выполнить все вычисления то прога не тормозит
Для 60 фпс нужно успеть все просчитать за 16 мс
И грубо говоря жаваскрипт потенциально всего в пять раз медленнее чем если бы все вычисления производились на С
Тоесть если всю математику написанную на С экспортнуть в жаваскрипт то получится в пять раз медленнее
Процессорные мощности отъедает v8 и браузер
Дополнительное замедление будет отъедать жс фреймворк или библиотеки если они медлительные

Такова простая логика
Без мракобесия

#23
1:31, 3 фев. 2015

Ты пишешь свой CPU 2D Render? Зачем? Это будет в разы медленнее и некрасиво.
Да даже вывезти предположим 256 картинки (128х128 разрешением), с масштабированием и вращениями, если ты будешь сам буффер считать, это будет у тебя будет лагать дай боже.

Зачем изобретать велосипед, если у родного canvas2d есть нормальный API для отрисовки почти всего что нужно?

#24
17:12, 5 фев. 2015

putImageData - жутко долгая и не эффективная операции. И совсем не современная.
И видеокарта никак не ускоряет отрисовка битмапов - просто берет и выводит, ведь никакой "композиции" тут нет.

#25
23:36, 5 фев. 2015

Kashey
> Итог простой - тоже самое на webgl (pixy имеет враперы для перехода с canvas на
> webgl) будет работать в 10-100 раз быстрее.
> Хотя, стоит признать, некоторые вещи (обводки например) на webgl ложатся
> сложновато.
К сожалению, нет прироста в 10-100 раз. Я не мерил точно, но на глаз ускорение раза в 2, на некоторых браузерах наблюдается замедление даже. Приду в офис сделаю нормальный тест.

Страницы: 1 2
ПрограммированиеФорумВеб

Тема в архиве.