Javascript WebRTC性能-非常高的cpu负载
使用+画布构建运动检测器。 当我运行该应用程序时,我立即得到非常高的cpu使用率。 我优化了循环等,但基本问题似乎是访问摄像头,例如WebRTC 有没有办法让WebRTC表现得更好?也许是另一种配置?还是我遗漏了什么?这可能是我处理错误的js内存泄漏吗? 我做错了什么 您可以使用相同的库检查另一个演示Javascript WebRTC性能-非常高的cpu负载,javascript,performance,html,html5-canvas,webrtc,Javascript,Performance,Html,Html5 Canvas,Webrtc,使用+画布构建运动检测器。 当我运行该应用程序时,我立即得到非常高的cpu使用率。 我优化了循环等,但基本问题似乎是访问摄像头,例如WebRTC 有没有办法让WebRTC表现得更好?也许是另一种配置?还是我遗漏了什么?这可能是我处理错误的js内存泄漏吗? 我做错了什么 您可以使用相同的库检查另一个演示 另一个是使用WebRTC的,有着同样的问题,这个演示看起来像是通过检查视频图像的像素来进行运动检测。它似乎将其渲染到画布,然后检索画布图像数据 这是缓慢的,因为它只是一个缓慢的事情做-有很多像素,
另一个是使用WebRTC的,有着同样的问题,这个演示看起来像是通过检查视频图像的像素来进行运动检测。它似乎将其渲染到画布,然后检索画布图像数据 这是缓慢的,因为它只是一个缓慢的事情做-有很多像素,帧通过很快,这是一个高CPU的工作。更糟糕的是,Javascript在这种数据密集型处理中并不总是非常高效。所以我不认为这种缓慢是WebRTC固有的。这只是繁重的javascript。您尝试过使用它进行计算吗
有一个(仅限Firefox)。CPU使用率在本演示中似乎很高,但工作人员报告的帧速率远远超过视频的帧速率,因此尝试将工作人员的帧速率限制在30fps可能会有一些好处。我在测试了演示,它的CPU使用率不超过20%。我认为您应该记住WebRTC还远未准备好生产—API和底层协议仍在经历重大更改。你是在每个浏览器上都有很高的CPU负载,还是只在一个特定的浏览器上?你是否也测试了另一个浏览器?另外,我只能在chrome 22中测试,因为这在其他浏览器中已经实现了。getUserMedia现在可以在Firefox Aurora/Nightly和Opera中使用——最好在这些浏览器上测试。(请参阅www.siml.info/gum,以了解在所有三种平台上都能运行的演示。)爱立信Bowser移动浏览器还实现了WebRTC,包括gum。另外,为了显得迂腐,请注意“WebRTC”被用来表示gUM,而WebRTC实际上是浏览器项目中的整个实时通信,包括RTPeerConnection和DataChannel。没有这三个API,就没有Web,但没有RTC!口香糖只是获取流式数据的一部分。为什么使用webworkers会更快?也许是非阻塞,但速度更快?web worker是否使用不同的线程?是的,它们在与UI线程不同的线程中运行。进一步说,您可以启动多个Worker,并以MapReduce方式分配工作,以提高性能。但对于CPU使用,YMMV。