在图层中保留不可见的形状与添加和删除形状有多少开销?
我正在构建一个轻量级的演示管理器,在幻灯片翻转时不断添加和删除形状。我经常会重复使用之前幻灯片中的形状,因此很多形状都不会被一次性使用(此外,它还可以向后滚动幻灯片,重复使用原始形状)。
在实践中,我无法区分,但我认为我会检查意见。现在我默认完全添加和删除每张幻灯片,但担心如果我从一张幻灯片到下一张幻灯片有很多形状会产生延迟。如果没有这样的开销,为什么会添加可见标志?
答案 0 :(得分:1)
node.remove
和node.hide
都保留对节点的引用,因此开销几乎相同。
node.destroy
将销毁节点,垃圾收集器最终将回收其资源。
答案 1 :(得分:1)
如果你正在做任何事情,性能关键的分配和垃圾收集是性能最糟糕的两件事,因为它们会明显降低你的帧率。
理想情况下,您在加载交互式组件时创建所有内容,然后在交互或动画期间不删除或创建任何对象。我不确定KinectJS,但一个看不见的物体的开销通常不多。