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
Performance WebGL的高CPU使用率?_Performance_Opengl Es_Cpu_Webgl - Fatal编程技术网

Performance WebGL的高CPU使用率?

Performance WebGL的高CPU使用率?,performance,opengl-es,cpu,webgl,Performance,Opengl Es,Cpu,Webgl,我正在查看Firefox和Chromium的夜间版本以及WebGL的支持和一些演示和教程,我不禁想知道它们会导致极高的CPU负载 一个简单的演示以我双核60%的持续速度运行。大型版本的CPU最大化为100%,并有一些可见的帧丢失。 Chromium似乎比firefox稍好一点,但也不是很多。我很确定,如果这些是桌面应用程序,CPU负载可以忽略不计 这是怎么回事?它在干什么?运行这些简单的脚本不会有那么高的要求。这是额外的安全层还是什么 编辑:我在这里找到了webgl的原始演示: 运行这个(全

我正在查看Firefox和Chromium的夜间版本以及WebGL的支持和一些演示和教程,我不禁想知道它们会导致极高的CPU负载

一个简单的演示以我双核60%的持续速度运行。大型版本的CPU最大化为100%,并有一些可见的帧丢失。
Chromium似乎比firefox稍好一点,但也不是很多。我很确定,如果这些是桌面应用程序,CPU负载可以忽略不计

这是怎么回事?它在干什么?运行这些简单的脚本不会有那么高的要求。这是额外的安全层还是什么


编辑:我在这里找到了webgl的原始演示:


运行这个(全屏)可以让CPU保持48%,所以可能我错了…

图形渲染非常占用CPU,这就是为什么有带GPU的显卡,这样就可以将工作卸载到显卡上。我将试用您的演示,看看它们如何在我的电脑上运行,因为我的电脑上安装了一个像样的显卡。

无法重现性能问题。第一个以98-100fps的速度运行,使用我的core i5的一个内核。第二个使用一个核心的50%左右

这是Chrome开发频道、Windows 7 64位、Radeon HD 5770,换句话说,是一台中等功能的现代机器


还请注意,当有大量迭代时(这些演示似乎有很多多边形),小代码大小并不等于快。

webgl确实很慢。因为它是新的,所以它使用软件合成器。
所以基本上GPU-CPU-GPU只需要一个帧就可以调用。firefox和webkit都在使用它

这台计算机有一个nVidia 8600,它完全可以处理这些。好吧,我不会再这样做了,哈哈。我可怜的显卡的GPU快崩溃了。所以,是的,WebGL仍然是一项正在进行的工作,我们只需要说,还需要进行更多的优化。顺便说一句,我的cpu根本没有受到太多的冲击。我使用的是nVidia 7900GS,所以我想是时候升级了:(你不觉得奇怪吗?使用一个完整的内核基本上什么都不做?我猜上下文切换仍然很昂贵。从JS到本机到GPU。上下文切换到GPU?嗯?你是说CPU和GPU之间的同步吗?如果有的话,不应该太多,OpenGL会将渲染指令转储到缓冲区中,并流式处理这些指令。)em到GPU,GPU在渲染过程中的指定点使用缓冲区交换将结果同步到屏幕上,但CPU根本不参与其中。@Ben,但是每次调用opengl时都会有到内核的上下文切换…所以你真正的意思是将上下文切换到视频驱动程序?即使不是每次调用都会发生这种情况,任何正常的i实现将缓冲一组命令,然后立即请求整个批处理的传输。但是这里所有的CPU使用都与对GLDrawerElements的一次调用有关。因此8年过去了,它消耗了我的GPU 100%。。我将附议EWGL的说法。WebGL规范要求渲染的3D画布可以与h页面上的其他HTML元素(例如,使文本可以显示在页面顶部)。这意味着GPU渲染场景,然后CPU获取一个副本并将其与渲染的HTML组合,然后将其发送回图形卡进行显示。因此,GPU-CPU-GPU在每一帧上显示;这是非常昂贵的。浏览器编写器正在修复此问题——IIUC将来,GPU将进行合成。