|
本帖最后由 fulibo 于 2024-11-22 10:00 编辑
AdditionalCriticalWorkerThreads
HKLM\System\CurrentControlSet\Control\Session Manager\Executive\AdditionalCriticalWorkerThreads預設值為 0,這意味著不再新增更關鍵的核心工作執行緒。 這個值會影響檔案系統快取用於預先讀取和延遲寫入要求的執行緒數目。 提高此值可在儲存體子系統中允許更多已排入佇列的 I/O,而且可以改善 I/O 效能,特別是在具備許多邏輯處理器和強大儲存硬體的系統上。 注意 此設定主要適用於 Windows 7、Windows Server 2008 R2 和舊版的作業系統。 在稍後的作業系統中,雖然 Cache Manager 仍間接取用此值,但快取管理員不會在稍後的作業系統中建立專用的工作者執行緒;相反的,此值會間接影響每個類型的工作項目數 (一般工作者、延遲寫入器等) 快取管理員會配置以供稍後提交至核心執行緒集區。
提示 如果快取管理員的無效資料量 (效能計數器快取\中途分頁) 正在增長而耗用大量 (超過大約 25%) 的記憶體,或者系統正在執行大量同步讀取 I/O,則可能需要增加此值。
这是官网上写的!
这个参数对win7类老系统起到性能上的优化,
win10上面主要是对SMB共享一类的提速!
网上查了一下,一个线程大概占用1M左右的内存!
似乎,linux中虚拟内存确实是按照一个线程默认8M来分配的。
但,windows中不是这样的,开启线程后,内存增加很小。
默认情况下,一个线程的栈要预留1M的内存空间,而一个进程中可用的内存空间只有2G,
所以理论上一个进程中最多可以开2048个线程,但是内存当然不可能完全拿来作线程的栈,
所以实际数目要比这个值要小,你也可以通过构造线程时修改默认堆栈大小,将其改的比较小,
这样就可以多开一些线程,如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程,
而一个线程的默认线程栈1024K
AdditionalCriticalWorkerThreads:用于设置额外的关键工作线程。
AdditionalDelayedWorkerThreads:用于设置延迟工作线程。
这两个参数的设置应该尽量避免超过系统的实际线程数,以保持系统稳定性。在这种情况下,Intel Core i5-10400 有 12 个线程(6 核心,支持超线程)。通常来说,可以设置的最大值不会超过实际线程数的 2 到 3 倍,但要避免过多线程导致性能瓶颈或资源耗尽。
物理核心 × 2 =
Windows Registry Editor Version 5.00
;可用的工作线程,并优化CPU能力
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Executive]
"AdditionalCriticalWorkerThreads"=dword:0000000a ;额外分配给处理关键任务的线程数量,关键任务通常指的是那些需要尽快完成,以保证系统稳定性和响应性的任务
"AdditionalDelayedWorkerThreads"=dword:0000000a ;额外分配给处理延迟任务(即那些可以稍后处理的任务)的线程数量
|
|