今天我通过从本地安装的 ISO 运行安装程序升级到 Creators Update。当我回到电脑前时,我打开任务管理器,发现我的内存使用量比以前高了很多(现在登录后空闲时内存使用量接近 6GB,而以前的 Windows 版本只有 2-3GB)- 进程选项卡显示有超过60不同的运行实例svchost.exe
。这个 6GB 的数字只是进程内存 - 不包括用于缓存或“待机”的内存。
我运行tasklist /svc
以获取哪些服务在哪些进程中的列表,它列出了几乎每个 svchost.exe 实例都只包含一个正在运行的服务(除了少数运行一些系统服务的实例)。
这是我的输出:
Image Name PID Services
========================= ======== ============================================
System Idle Process 0 N/A
System 4 N/A
smss.exe 440 N/A
csrss.exe 612 N/A
wininit.exe 700 N/A
csrss.exe 708 N/A
services.exe 776 N/A
lsass.exe 784 KeyIso, Netlogon, SamSs, VaultSvc
svchost.exe 888 PlugPlay
svchost.exe 908 BrokerInfrastructure, DcomLaunch, Power,
SystemEventsBroker
fontdrvhost.exe 936 N/A
svchost.exe 1000 RpcEptMapper, RpcSs
svchost.exe 104 LSM
winlogon.exe 544 N/A
fontdrvhost.exe 420 N/A
svchost.exe 1072 DeviceInstall
dwm.exe 1136 N/A
svchost.exe 1164 BFE, CoreMessagingRegistrar, MpsSvc
svchost.exe 1424 lmhosts
svchost.exe 1432 W32Time
svchost.exe 1440 nsi
svchost.exe 1448 wudfsvc
svchost.exe 1528 hidserv
svchost.exe 1628 Dhcp
svchost.exe 1716 Dnscache
svchost.exe 1748 EventLog
WUDFHost.exe 1792 N/A
svchost.exe 1908 TimeBrokerSvc
svchost.exe 1952 NlaSvc
NVDisplay.Container.exe 1968 NVDisplay.ContainerLocalSystem
svchost.exe 1324 Themes
svchost.exe 1596 ProfSvc
svchost.exe 1944 EventSystem
svchost.exe 1052 netprofm
svchost.exe 2116 StateRepository
svchost.exe 2256 SENS
svchost.exe 2296 AudioEndpointBuilder
svchost.exe 2304 FontCache
(etc)...
我知道您可以使用该命令配置单个服务在其自己的 svc 实例中运行sc config <serviceName> type= own
,但据我所知,我从未运行过该命令。
我快速查看了一下Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
,发现Type
大多数这些服务的键值都缺少标志位,0x10
该标志位控制服务是否在其自己的svchost.exe
实例中运行。我想知道是什么导致了这一变化。
在安装 Windows 10 Creators Update 之前或之后,还有其他人观察到过这种行为吗?如果这是默认配置更改,它会对系统性能或稳定性产生影响吗?
我怀疑它会增加系统稳定性,因为如果一个服务崩溃,它不会导致其他服务崩溃 - 但这会耗费大量的 RAM - 但我从来没有遇到过服务崩溃的情况 - 或者至少从来没有注意到它(相反,我遇到的最严重的问题是wuauserv
连续数小时消耗 100% 的 CPU - 而这不是进程隔离可以解决的问题)。
(我刚刚注意到:他们终于在注册表编辑器中添加了一个地址栏!)
答案1
是的,这个如果你使用的 PC 内存超过 3.5GB,那么 Creators Update 会有所变化。这里所有服务都在自己的 svchost.exe 中运行,以便更好地查看哪个服务导致问题,或者如果某个服务导致 svchost.exe 崩溃,则防止其他服务崩溃。
如果您的 PC 有 3.5+ GB 的内存,您可能会注意到任务管理器中的进程数量有所增加。虽然乍一看这种变化可能令人担忧,但许多人会很高兴发现这种变化背后的动机。随着预装服务数量的增加,它们开始在 Windows 2000 中分组到称为服务主机 (svchost.exe) 的进程中。请注意,此版本推荐的 PC RAM 为 256 MB,而最低 RAM 为 64MB。由于多年来可用内存急剧增加,服务主机的内存节省优势已经减弱。因此,在运行 Windows 的内存丰富(3.5+ GB RAM)的 PC 上取消服务分组现在为我们提供了执行以下操作的机会:
所以,不用担心,这是 v1703 中的一个很好的变化,一切都很好。
但有一种方法可以恢复它。这是被用户发现一个涉及 Windows 调整的网站。
因此,运行regedit.exe
,转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
并创建一个 32 位 DWORDSvcHostSplitThresholdInKB
并将其设置为一个大数字(与安装的 RAM 相比更大)。