|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
|
Оптимизация работы с canvas. Производительность23.01.2021, 21:34. Показов 2037. Ответов 6
Всем привет
Как можно оптимизировать или ускорить работу с canvas и какие средства для этого существуют? Так же, возможно кто-то может подсказать (приложил скриншот) Я отрисовываю канвас, и казалось бы, всё это происходит быстро. Но вот task длинной в 200 ms и при этом все действия, вроде как - завершены, мне не нравится. Что может быть не так?
0
|
|
| 23.01.2021, 21:34 | |
|
Ответы с готовыми решениями:
6
Совместная работы функций Canvas.scale и Canvas.translate Оптимизация и производительность Python Оптимизация Canvas |
|
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
|
|
| 23.01.2021, 21:37 | |
|
EveKS, покажите код.
0
|
|
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
||||||||||||||||
| 23.01.2021, 21:58 [ТС] | ||||||||||||||||
|
В моем случае, это видимо ангуляр с дом деревом так долго взаимодействует, но не факт
Именно _generateCanvas заставлят так долго выполняться shvyrevvg, в моем случае не JS, а TS, но вопрос оптимизации относится к JS
перед _generateCanvas я вызываю _generateColorPoint Можно вынести _generateCanvas в вебвокер, так как там строится объект {} и по калбеку вызкать _generateColorPoint уже в компоненте. Но вот даст-ли это результат... Ведь я не решу проблему с _generateColorPoint
0
|
||||||||||||||||
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
|
| 23.01.2021, 22:27 [ТС] | |
|
0
|
|
|
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
|
|
| 24.01.2021, 04:05 | |
|
Привет EveKS,
я не вникал в код нет времени, извините может завтра вечером появится, но это не точно, у меня сейчас перекур=) Но быстрый взгляд на интернеты говорит что нужно смотреть в сторону requestAnimationFrame вместо setTimeout? очень извиняюсь что пальцем в небо не попал Use requestAnimationFrame instead of setInterval / setTimeout Оптимизация работы элемента canvas в HTML5 и т.д. Еще раз извините что не в тему если что, просто google "canvas performance improvements"
2
|
|
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
||||||
| 24.01.2021, 09:49 [ТС] | ||||||
|
web_coder2, спасибо большое
Я сделал коекакие оптимизации и исследования Скажу что обнаружил: point.num.toString(), медленее чем String(point.num); Вынес в off конвас ниженаписанный код, т.к. эта часть статична
Но самой моей большой проблемой является вызов fillText. fillText отнимает у меня 100-150 мс. Т.к. вызываю я его около 9000+ раз. Есть мысль, формировать массив, назовем это лейзи формированием. Т.е. заранее я знаю что я буду отображать. Еще до запроса к серверу, и формировании canvas на основе ответа. В момент запроса, а это 200 мс+, я могу так же вызвать формирование нескольких тысяч канвас, и сохранить в объект (ключ, значение). И затем уже строить, используя drawImage. Почитал, drawImage - быстрее чем fillText. Если какие-то данных нет, и сервер вернул что-то, что я ранее не ожидал, то просто заполнить именно эти участки используя fillText. Возможно это даст мне 50 мс, и ни в чем другом я не проиграю.Добавлено через 2 минуты Еще думал в сторону OffscreenCanvas, но там с поддержкой могут быть проблемы.
2
|
||||||
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
|
| 24.01.2021, 18:08 [ТС] | |
|
Вышеописанный алгоритм ускорил рендеринг, теперь вместо 200+ (а не редко около 300) миллисекунд, рендеринг происходит за 40-50. И есть еще идеи что поправить =))
0
|
|
| 24.01.2021, 18:08 | |
|
Помогаю со студенческими работами здесь
7
Оптимизация Canvas Производительность труда при выполнении некоторой работы повысилась на 40% на сколько % сократилось время необходимое для выполнения этой работы Производительность работы 1C:ERP Как увеличить производительность работы? Vista и производительность работы в малом бизнесе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|