浏览器 GPU 内存使用情况如何运作?
How does browser GPU memory usage works?
按 F12,然后在 Chrome 上按 Esc,您可以看到几个要勾选的选项。其中之一是显示 FPS 仪表,它允许我们实时查看 GPU 内存使用情况。
我有几个关于此 GPU 内存使用的问题:
- 这个GPU内存是指网页需要存储其代码的内存:变量、方法、图像、缓存的视频等。是否可以肯定?
- 它的上限为 512 Mb 是否有原因?有没有办法减少或增加它?
- 多少 GPU 内存使用量足以导致浏览器导航明显变慢?
- 如果我有一个包含数百万个元素的数组(只是假设),并且我拼接了数组中的所有元素,它会释放正在使用的内存吗?或者它不会 "really" 释放内存,需要额外的步骤才能真正清除它?
1. GPU内存中存储了什么
虽然对于可以存储在 GPU 内存中的数据类型没有硬性规定,但大部分 GPU 内存通常包含单帧资源(如纹理)、多帧资源(如顶点缓冲区和索引)缓冲区数据和可编程着色器编译的代码片段。因此,虽然理论上可以在 GPU 内存中存储视频以及各种其他大容量数据,但实际上,对于每个流式视频,GPU-ram 中只会存储一串帧。
软选择类纹理数据集的主要原因是 GPU 是一种并行硬件架构,它希望数据与该理念兼容,这意味着没有相互依赖性数据集之间(即像素)。从视频流中解码图像与解决数据块之间的相互依赖关系大致相同。
2。 512MB够大家用吗?
没有。这可能取决于您的硬件。
3。 GPU内存什么时候变慢?
您必须知道 GPU 内存的某些部分是如此之快,以至于您甚至无法开始欣赏速度。 GPU卡的速度没有问题。重要的是首先将数据放入该内存所需的时间。这就是所谓的带宽,操作通常需要同步。在这种情况下,驱动程序将锁定 Northbridge 总线,以便数据可以从主内存流入 GPU 内存,并且此锁定 + 传输需要相当长的时间。
所以回答这个问题,一旦上传,GUI 将保持快速,无论 GPU 卡上使用多少内存。唯一可以减慢速度的是 GUI 的更改,以及其他 GPU 进程需要时间才能完成,这可能会干扰渲染操作。
4.拼接ram内存释放出来?
我不太清楚你说的拼接是什么意思。 GPU 内存由使用 API 调用释放该内存的应用程序释放。如果你想让你的 GPU 内存空白,你必须先获取资源的 GPU 句柄,将 'clear' 数据上传到其中,然后再次释放句柄,但是(对于普通的单线程 GPU 应用程序) 您只能在自己的流程上下文中执行此操作。
按 F12,然后在 Chrome 上按 Esc,您可以看到几个要勾选的选项。其中之一是显示 FPS 仪表,它允许我们实时查看 GPU 内存使用情况。 我有几个关于此 GPU 内存使用的问题:
- 这个GPU内存是指网页需要存储其代码的内存:变量、方法、图像、缓存的视频等。是否可以肯定?
- 它的上限为 512 Mb 是否有原因?有没有办法减少或增加它?
- 多少 GPU 内存使用量足以导致浏览器导航明显变慢?
- 如果我有一个包含数百万个元素的数组(只是假设),并且我拼接了数组中的所有元素,它会释放正在使用的内存吗?或者它不会 "really" 释放内存,需要额外的步骤才能真正清除它?
1. GPU内存中存储了什么
虽然对于可以存储在 GPU 内存中的数据类型没有硬性规定,但大部分 GPU 内存通常包含单帧资源(如纹理)、多帧资源(如顶点缓冲区和索引)缓冲区数据和可编程着色器编译的代码片段。因此,虽然理论上可以在 GPU 内存中存储视频以及各种其他大容量数据,但实际上,对于每个流式视频,GPU-ram 中只会存储一串帧。
软选择类纹理数据集的主要原因是 GPU 是一种并行硬件架构,它希望数据与该理念兼容,这意味着没有相互依赖性数据集之间(即像素)。从视频流中解码图像与解决数据块之间的相互依赖关系大致相同。
2。 512MB够大家用吗?
没有。这可能取决于您的硬件。
3。 GPU内存什么时候变慢?
您必须知道 GPU 内存的某些部分是如此之快,以至于您甚至无法开始欣赏速度。 GPU卡的速度没有问题。重要的是首先将数据放入该内存所需的时间。这就是所谓的带宽,操作通常需要同步。在这种情况下,驱动程序将锁定 Northbridge 总线,以便数据可以从主内存流入 GPU 内存,并且此锁定 + 传输需要相当长的时间。
所以回答这个问题,一旦上传,GUI 将保持快速,无论 GPU 卡上使用多少内存。唯一可以减慢速度的是 GUI 的更改,以及其他 GPU 进程需要时间才能完成,这可能会干扰渲染操作。
4.拼接ram内存释放出来?
我不太清楚你说的拼接是什么意思。 GPU 内存由使用 API 调用释放该内存的应用程序释放。如果你想让你的 GPU 内存空白,你必须先获取资源的 GPU 句柄,将 'clear' 数据上传到其中,然后再次释放句柄,但是(对于普通的单线程 GPU 应用程序) 您只能在自己的流程上下文中执行此操作。