Я рисую много линий на длинном холсте (например, на полосчатой диаграмме) и достаточно хорошо настроил его на производительность, используя низкоуровневые классы геометрии, замораживая их и т. Д. Это значительно улучшило производительность, но все равно требуетнесколько секунд, чтобы загрузить несколько тысяч предметов в холст.Я выполнил анализ производительности приложения, и похоже, что каждый вызов занимает canvas.children.add()
большой процент времени.Я читал, что это должен быть легкий вызов, и так как я вызываю его много раз в одном методе, он не должен пытаться сделать что-то тяжелое между ними ... Может быть, есть какая-то другая причина, по которой это может потребоватьсяТак много времени?И как бы я мог ускорить это?
Производительность не ужасная, но я боюсь, что это может стать проблемой позже, когда мне придется работать с большими наборами данных.
Просто для справки, похоже, что в этом примере он вызывается 1400 раз, и на современном / быстром ноутбуке это занимает почти 3 секунды процессорного времени.
Хотя холст содержится в иерархии других элементов управления, поэтому мне любопытно, могут ли они способствовать этому.
Дополнительное примечание: я также не устанавливаю конкретную высоту на холсте, так как она настроена для заполнения родительского контейнера сетки.Может ли это быть источником проблем?