Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebRTC性能-非常高的cpu负载_Javascript_Performance_Html_Html5 Canvas_Webrtc - Fatal编程技术网

Javascript WebRTC性能-非常高的cpu负载

Javascript WebRTC性能-非常高的cpu负载,javascript,performance,html,html5-canvas,webrtc,Javascript,Performance,Html,Html5 Canvas,Webrtc,使用+画布构建运动检测器。 当我运行该应用程序时,我立即得到非常高的cpu使用率。 我优化了循环等,但基本问题似乎是访问摄像头,例如WebRTC 有没有办法让WebRTC表现得更好?也许是另一种配置?还是我遗漏了什么?这可能是我处理错误的js内存泄漏吗? 我做错了什么 您可以使用相同的库检查另一个演示 另一个是使用WebRTC的,有着同样的问题,这个演示看起来像是通过检查视频图像的像素来进行运动检测。它似乎将其渲染到画布,然后检索画布图像数据 这是缓慢的,因为它只是一个缓慢的事情做-有很多像素,

使用+画布构建运动检测器。 当我运行该应用程序时,我立即得到非常高的cpu使用率。 我优化了循环等,但基本问题似乎是访问摄像头,例如WebRTC

有没有办法让WebRTC表现得更好?也许是另一种配置?还是我遗漏了什么?这可能是我处理错误的js内存泄漏吗? 我做错了什么

您可以使用相同的库检查另一个演示


另一个是使用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。