我有this Sketch。您可以使用向上加速和左右旋转船舶方向来驾驶船舶。 (尽管由于无法从编辑器模糊而无法在Sketch上始终运行,因此按键事件不会在画布窗口中注册)

每个帧都会将船当前质心处的点添加到整个船迹中。这一切都很好,花花公子。在大约2分钟左右(取决于您的计算机)飞行中出现问题。逐渐地,整个过程开始变慢,帧速率下降到可见的水平。最初,我认为这是因为每个点都需要存储在RAM中,并且它们太多了,但是选项卡的内存似乎并没有明显增加。 CPU使用率似乎确实迅速上升到约20%,并且通常保持在该水平。有人对此有解释或解决方法吗?

最佳答案

好的,我对此做了一些阅读。您不断添加到帧抄袭回调中的ship.path中。尝试限制路径的最大大小,如下所示:

var MAX_SEGMENTS = 1000

ship.path.add(centroid(ship.shipPath));

function onFrame(event) {
    if (ship.path.length > MAX_SEGMENTS)
    {
        var d = ship.path.length - MAX_SEGMENTS
        ship.path.removeSegments(0, d)
    }


更新了sketch

关于javascript - 为什么我的paperjs应用占用大量CPU资源并减慢速度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34600634/

10-10 08:32