svchost是什么过程(说说熟悉和不熟悉的svchost过程)
熟悉又陌生的朋友:svchost.exe
有时候,你可能会打开任务管理器,看看里面有哪些进程在运行,你会发现进程列表里有很多svchost.exe。
为什么有这么多svchost.exe进程?这个svchost.exe到底是什么?今天就来简单解释一下。
设计原则和说明
从传统的系统设计角度来看,每个Windows服务都将在自己的进程中运行。这样,当你开发和测试你的服务时,就非常简单方便了。
但是如果你打开Windows的服务管理器(命令行执行services.msc),你会发现那里有很多服务,主要是Windows的服务,包括第三方应用开发者开发的服务。如果每个服务对应一个流程,系统需要维护很多流程。对于一个进程,即使它不做任何实际工作,系统也需要为它分配各种资源来维护这个进程。将每个服务放在一个进程中的设计,实际上是一种资源浪费,因为大量的服务只是在特定的时间点被触发执行。例如,Microsoft Windows Phone TAPI服务(Tapisrv),它只会在处理与调制解调器相关的操作时被触发运行。
出于性能原因,我们将相关服务组织到一个组中,其中所有服务将在一个名为svchost的共享进程中运行。
这意味着,如果您在svchost.exe中发现异常,您仍然无法知道其中的哪个服务出了故障。在微软的知识库中,有一篇专门介绍svchost的文章(如何深入每个svchost,看看里面运行的是哪些服务),讲述了如何通过研究SVChost进程来检查它承载了哪些服务。这还是很有用的,因为当svchost进程异常的时候,至少可以缩略一下排查的范围。
在svchost中查看服务的几种 ***
1.通过任务管理器查看。
2.执行命令行命令:task list/SVC/fi ” ImageName EQ svchost . exe “
3.通过Process Explorer工具进行检查。
摘要
在同一进程中运行多个服务可以减少系统资源消耗并提高性能。但是,这种设计不可避免地增加了开发和调试服务的难度。因此,您在开发Windows服务时需要小心谨慎。