Я пытаюсь улучшить производительность на нашем холсте, так как все (несколько областей) перерисовывается на каждом stage.update()
, что и работает. Я хотел бы рисовать/добавлять только одну область. Я могу заставить это работать, но затем все предыдущие области удаляются из-за update
. Я обнаружил, что кэширование может быть улучшением производительности, но оно фактически замедляет рендеринг.EaselJS: Почему кеширование делает мой рендеринг медленнее?
Пример код:
self.areaMask = new createjs.Shape();
self.areaMask.graphics.beginFill("#000").drawRect(0, 0, 50, 50);
self.areaMask.cache(0, 0, 50, 50);
Странная часть является то, что момент, когда я включить это кэширование, он на самом деле делает рендеринг медленнее. Только когда я уменьшаю необязательный четвертый параметр scale
до 0.1
, производительность, немного, лучше.
Я хотел бы понять, как это возможно, что я могу делать неправильно?
Есть ли другой лучший способ добиться желаемого поведения? (Только нарисовать/добавить указанные зоны, не перерисовывать все районы)
Благодарим за информацию, очень полезно. Я обнаружил некоторые проблемы, когда кеширование небольших объектов выполнялось слишком много раз. Мне придется дополнительно изучить более эффективное использование кеша. Есть ли способ определить, какой процессор или графический процессор используется для кеширования? – RobSeg
Это хорошая новость :) На самом деле нет способа рассказать, насколько я знаю, хотя у браузера могут быть инструменты, указывающие на то, о чем я не знаю. В значительной степени, если вы начнете видеть такие проблемы с производительностью, процессор, вероятно, задействован или захвачен. Обратите внимание, что некоторые вещи не могут быть аппаратно ускорены, такие как Graphics, Dropshadows, Text и т. Д. Кэширование должно помочь большинству этих вещей при правильном использовании. – Lanny