HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Windows\SharedSection 有什么作用?

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Windows\SharedSection 有什么作用?

我在 YouTube 上观看了有关如何充分发挥集成 GPU 性能的视频,视频指导如何将上述注册表项的数据从 更改SharedSection=1024,3072,512SharedSection=1024,30720,512

  • 这实际上起什么作用?
  • 这对游戏过程中的性能有何影响?
  • 它安全吗?
  • 如果不使用,难道不能做同样的事情吗regedit

我google了一下,所有的答案都是关于并发策略的数量,但是我不是很理解,也没有发现这和集成GPU性能有什么关系。

答案1

该键控制共享堆内存的限制

并行进程通常需要共享数据的方法,因此 Windows 提供了一个共享堆(堆是用于动态内存分配的内存池),多个进程可以访问。通常,流程在它们可以访问的内存中完全隔离,因此共享内存结构允许它们进行协作。

Windows 为所有系统进程创建一个系统堆,为在特定交互式用户会话下运行的所有进程创建一个桌面堆,并为在非交互式会话中无头运行的进程创建一个非交互式桌面堆。

您突出显示的键的语法是:
SharedSection=[system],[desktop],[noninteractive]
所有值均以 KB 为单位。

此注册表项允许您配置每个堆,建议的设置将每个交互式会话下运行的进程可用的共享堆从 3,072KB 增加到 30,720KB

这个设置看起来足够安全;一般来说,拥有更多的共享堆可以让进程共享更多的信息,但在这种情况下,它几乎肯定是为了支持创建许多进程,这些进程的线程使用共享内存执行任务。

微软提到共享堆与 Direct3D 和 DirectX 结合使用它们来存储纹理,并且特别提到共享堆可用于映射到跨 GPU 等多个设备的数据,并避免 CPU 对 RAM 进行编组。

答案2

我差点以为我没有问题中提到的注册表项,但设法在这里找到了它。在 Windows10 1809 上,默认数据似乎是“1024,20480,768”。

注册表编辑器

相关内容