浏览器GPU内存使用情况如何?

时间:2015-09-06 10:32:43

标签: memory memory-management gpu

在Chrome上按F12然后按Esc,您可以看到一些选项。其中一个是show FPS meter,它允许我们实时查看GPU内存使用情况。 关于GPU内存的使用,我有几个问题:

  1. 这个GPU内存意味着网页需要存储其代码的内存:变量,方法,图像,缓存视频等。这是肯定的吗?
  2. 有没有理由说它为什么上限为512 Mb?有没有办法减少或增加它?
  3. GPU内存使用量足以让浏览器导航显着减慢?
  4. 如果我有一个包含数百万个元素的数组(只是假设),并且我拼接了数组中的所有元素,它会释放正在使用的内存吗?或者它不会“真正”释放内存,需要额外的步骤来实际消除它?

1 个答案:

答案 0 :(得分:2)

1。存储在GPU内存中的内容

尽管对GPU内存中可存储的数据类型没有硬性规定,但GPU内存的大部分通常包含单帧资源,如纹理,顶点缓冲区和索引缓冲区数据等多帧资源,以及可编程着色器编译的代码片段。因此,虽然理论上可以将视频存储在GPU内存中,以及各种其他批量数据,但实际上,对于每个流式视频,只有一堆帧将在GPU-ram中。

这种类似纹理的数据集的软选择的主要原因是GPU是并行硬件架构,并且它期望数据与该哲学兼容,这意味着集合之间没有相互依赖性数据(即像素)。解码视频流中的图像或多或少与解决数据块之间的相互依赖性相同。

2。每个人足够512MB吗?

没有。它可能基于您的硬件。

3。 GPU内存何时变慢?

你必须知道GPU内存的某些部分是如此之快,你甚至无法开始欣赏速度。 GPU卡的速度没有任何问题。重要的是首先将数据输入内存所需的时间。这称为带宽,通常需要同步操作。在这种情况下,驱动程序将锁定北桥总线,以便数据可以从主存储器流入GPU内存,这种锁定+传输需要相当长的时间。

所以要回答这个问题,一旦上传,无论GPU卡上使用了多少内存,GUI都将保持快速。唯一可以降低速度的是GUI的更改,而其他GPU进程需要时间才能完成,这可能会影响渲染操作。

4。拼接ram内存释放它?

我不太确定拼接是什么意思。 GPU内存由释放该内存的应用程序释放,使用API​​调用来执行此操作。如果你想将GPU内存渲染为空白,你必须首先获取资源的GPU句柄,将'clear'数据上传到它们中,然后再次释放句柄,但是(对于普通的单线程GPU应用程序)你只能在你自己的流程环境中做到这一点。