前沿拓展:
熟悉的陌生朋友:svchost.exe
有時候,你可能會打開任務管理器,看看里面有什么進程在跑,你會發(fā)現(xiàn),進程列表中有很多svchost.exe。
為什么會有如此多的svchost.exe進程呢?這個svchost.exe到底是什么呢?今天就來簡單解釋解釋。
設計原理和解釋
從傳統(tǒng)的系統(tǒng)設計角度來看,每一個Windows服務都會運行在它所在的進程中。這樣,當你開發(fā)和測試你的服務的時候就十分簡單方便。
但是,如果你打開Windows的**器(命令行執(zhí)行services.msc),你會發(fā)現(xiàn),那里有很多服務,其中主要是Windows的服務,當然也包含第三方應用開發(fā)商開發(fā)的服務。如果每個服務都對應一個進程的話,則系統(tǒng)需要維護非常多的進程。對于一個進程來說,就算它什么實際的工作也不做,系統(tǒng)也需要為它分配各種資源來維護這個進程。將每個服務都放到一個進程中的設計方式實際上是一種資源的浪費,因為有很大一部分服務僅僅是在某些時間點下被觸發(fā)執(zhí)行。例如Microsoft Windows電話TAPI服務(Tapisrv),它僅僅會在處理和調(diào)制解調(diào)器(modem)相關(guān)的**作時才會被觸發(fā)運行。
考慮到性能方面的原因,我們將相關(guān)的服務編到一個組中,在這個組中,所有的服務都會運行在一個叫做svchost的共享進程中。
這意味著,如果你發(fā)現(xiàn)某一個svchost.exe有些不正常,你還是無法知道到底是里面的哪一個服務出了問題。在微軟的知識庫中,有一篇專門講解svchost的文章(how you can dig into each svchost to see which services are running inside it),它講述了如何通過研究svchost進程來查看它承載了哪些服務。這還是很有用的,因為當svchost進程異常的時候,你至少可以縮寫問題排查的范圍。
查看svchost中的服務的幾種方法
1. 通過任務管理器查看。
2. 執(zhí)行命令行指令:tasklist /svc /fi “imagename eq svchost.exe”
3. 通過Process Explorer工具來查看。
小編綜合來說
將多個服務跑在同一個進程中,減少了系統(tǒng)資源消耗,提升了性能。但是,這種設計也不可避免地增加了開發(fā)和調(diào)試服務的難度。所以,正在開發(fā)Windows服務的你,還需要再慎重慎重。
拓展知識:
前沿拓展:
熟悉的陌生朋友:svchost.exe
有時候,你可能會打開任務管理器,看看里面有什么進程在跑,你會發(fā)現(xiàn),進程列表中有很多svchost.exe。
為什么會有如此多的svchost.exe進程呢?這個svchost.exe到底是什么呢?今天就來簡單解釋解釋。
設計原理和解釋
從傳統(tǒng)的系統(tǒng)設計角度來看,每一個Windows服務都會運行在它所在的進程中。這樣,當你開發(fā)和測試你的服務的時候就十分簡單方便。
但是,如果你打開Windows的**器(命令行執(zhí)行services.msc),你會發(fā)現(xiàn),那里有很多服務,其中主要是Windows的服務,當然也包含第三方應用開發(fā)商開發(fā)的服務。如果每個服務都對應一個進程的話,則系統(tǒng)需要維護非常多的進程。對于一個進程來說,就算它什么實際的工作也不做,系統(tǒng)也需要為它分配各種資源來維護這個進程。將每個服務都放到一個進程中的設計方式實際上是一種資源的浪費,因為有很大一部分服務僅僅是在某些時間點下被觸發(fā)執(zhí)行。例如Microsoft Windows電話TAPI服務(Tapisrv),它僅僅會在處理和調(diào)制解調(diào)器(modem)相關(guān)的**作時才會被觸發(fā)運行。
考慮到性能方面的原因,我們將相關(guān)的服務編到一個組中,在這個組中,所有的服務都會運行在一個叫做svchost的共享進程中。
這意味著,如果你發(fā)現(xiàn)某一個svchost.exe有些不正常,你還是無法知道到底是里面的哪一個服務出了問題。在微軟的知識庫中,有一篇專門講解svchost的文章(how you can dig into each svchost to see which services are running inside it),它講述了如何通過研究svchost進程來查看它承載了哪些服務。這還是很有用的,因為當svchost進程異常的時候,你至少可以縮寫問題排查的范圍。
查看svchost中的服務的幾種方法
1. 通過任務管理器查看。
2. 執(zhí)行命令行指令:tasklist /svc /fi “imagename eq svchost.exe”
3. 通過Process Explorer工具來查看。
小編綜合來說
將多個服務跑在同一個進程中,減少了系統(tǒng)資源消耗,提升了性能。但是,這種設計也不可避免地增加了開發(fā)和調(diào)試服務的難度。所以,正在開發(fā)Windows服務的你,還需要再慎重慎重。
拓展知識:
前沿拓展:
熟悉的陌生朋友:svchost.exe
有時候,你可能會打開任務管理器,看看里面有什么進程在跑,你會發(fā)現(xiàn),進程列表中有很多svchost.exe。
為什么會有如此多的svchost.exe進程呢?這個svchost.exe到底是什么呢?今天就來簡單解釋解釋。
設計原理和解釋
從傳統(tǒng)的系統(tǒng)設計角度來看,每一個Windows服務都會運行在它所在的進程中。這樣,當你開發(fā)和測試你的服務的時候就十分簡單方便。
但是,如果你打開Windows的**器(命令行執(zhí)行services.msc),你會發(fā)現(xiàn),那里有很多服務,其中主要是Windows的服務,當然也包含第三方應用開發(fā)商開發(fā)的服務。如果每個服務都對應一個進程的話,則系統(tǒng)需要維護非常多的進程。對于一個進程來說,就算它什么實際的工作也不做,系統(tǒng)也需要為它分配各種資源來維護這個進程。將每個服務都放到一個進程中的設計方式實際上是一種資源的浪費,因為有很大一部分服務僅僅是在某些時間點下被觸發(fā)執(zhí)行。例如Microsoft Windows電話TAPI服務(Tapisrv),它僅僅會在處理和調(diào)制解調(diào)器(modem)相關(guān)的**作時才會被觸發(fā)運行。
考慮到性能方面的原因,我們將相關(guān)的服務編到一個組中,在這個組中,所有的服務都會運行在一個叫做svchost的共享進程中。
這意味著,如果你發(fā)現(xiàn)某一個svchost.exe有些不正常,你還是無法知道到底是里面的哪一個服務出了問題。在微軟的知識庫中,有一篇專門講解svchost的文章(how you can dig into each svchost to see which services are running inside it),它講述了如何通過研究svchost進程來查看它承載了哪些服務。這還是很有用的,因為當svchost進程異常的時候,你至少可以縮寫問題排查的范圍。
查看svchost中的服務的幾種方法
1. 通過任務管理器查看。
2. 執(zhí)行命令行指令:tasklist /svc /fi “imagename eq svchost.exe”
3. 通過Process Explorer工具來查看。
小編綜合來說
將多個服務跑在同一個進程中,減少了系統(tǒng)資源消耗,提升了性能。但是,這種設計也不可避免地增加了開發(fā)和調(diào)試服務的難度。所以,正在開發(fā)Windows服務的你,還需要再慎重慎重。
拓展知識:
前沿拓展:
熟悉的陌生朋友:svchost.exe
有時候,你可能會打開任務管理器,看看里面有什么進程在跑,你會發(fā)現(xiàn),進程列表中有很多svchost.exe。
為什么會有如此多的svchost.exe進程呢?這個svchost.exe到底是什么呢?今天就來簡單解釋解釋。
設計原理和解釋
從傳統(tǒng)的系統(tǒng)設計角度來看,每一個Windows服務都會運行在它所在的進程中。這樣,當你開發(fā)和測試你的服務的時候就十分簡單方便。
但是,如果你打開Windows的**器(命令行執(zhí)行services.msc),你會發(fā)現(xiàn),那里有很多服務,其中主要是Windows的服務,當然也包含第三方應用開發(fā)商開發(fā)的服務。如果每個服務都對應一個進程的話,則系統(tǒng)需要維護非常多的進程。對于一個進程來說,就算它什么實際的工作也不做,系統(tǒng)也需要為它分配各種資源來維護這個進程。將每個服務都放到一個進程中的設計方式實際上是一種資源的浪費,因為有很大一部分服務僅僅是在某些時間點下被觸發(fā)執(zhí)行。例如Microsoft Windows電話TAPI服務(Tapisrv),它僅僅會在處理和調(diào)制解調(diào)器(modem)相關(guān)的**作時才會被觸發(fā)運行。
考慮到性能方面的原因,我們將相關(guān)的服務編到一個組中,在這個組中,所有的服務都會運行在一個叫做svchost的共享進程中。
這意味著,如果你發(fā)現(xiàn)某一個svchost.exe有些不正常,你還是無法知道到底是里面的哪一個服務出了問題。在微軟的知識庫中,有一篇專門講解svchost的文章(how you can dig into each svchost to see which services are running inside it),它講述了如何通過研究svchost進程來查看它承載了哪些服務。這還是很有用的,因為當svchost進程異常的時候,你至少可以縮寫問題排查的范圍。
查看svchost中的服務的幾種方法
1. 通過任務管理器查看。
2. 執(zhí)行命令行指令:tasklist /svc /fi “imagename eq svchost.exe”
3. 通過Process Explorer工具來查看。
小編綜合來說
將多個服務跑在同一個進程中,減少了系統(tǒng)資源消耗,提升了性能。但是,這種設計也不可避免地增加了開發(fā)和調(diào)試服務的難度。所以,正在開發(fā)Windows服務的你,還需要再慎重慎重。
拓展知識:
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請注明出處:http://m.xiesong.cn/23934.html