我正在開發一款需要以高性能運行的軟件,我想知道它是否應該作爲Windows服務或常規Windows應用程序運行。問題是:在性能方面兩者是否有區別?意思是:操作系統調度程序是否會給Windows服務提供比Windows應用程序更多的CPU ticks?Windows服務性能與Windows應用程序性能
0
A
回答
2
要回答這個問題,看Description of Performance Options in Windows:
您可以使用性能選項將Windows設置可以針對任何前臺程序或後臺服務優化。假設背景服務的數量相對較少,並且在CPU時間更多的情況下效率更高,並且臺式計算機上的程序服務器或交互式程序在更短的時間片內效率更高,從而可以更快地響應鍵盤輸入和以服務更多的線程(成千上萬的終端服務應用程序服務器模式。
...
成爲當您啓用前臺應用程序選項更爲複雜的局面。這將引入「變量量子」的概念。在這個情況下,後臺任務的接收量與前臺任務接收到的量程不同,而且這兩個量程比線程在後臺服務設置的計算機上收到的時間要短。 y,後臺進程接收3的量程,前臺進程接收9的量程。因此,可以計算線程在定時器到期之前將運行的時間長度。
閱讀整個鏈接瞭解更多詳情。 TL/DR:後臺服務接收更長的量子。
但是,我非常懷疑你需要擔心這個設置。首先,最重要的是,99.9999%的應用程序始終不做任何事情,但等待一些IO完成(磁盤,網絡)。除非您在緊密循環中執行算術運算,否則由於所有實際原因,您的代碼始終在等待永不運行。助推器不會幫助你。而且我非常懷疑你真的需要部署一個服務,它可以在緊密的環路中執行高CPU。
對於你來說更相關的主題是通過High Performance Windows Programs學習如何在Windows上編寫適當的性能程序(即使用IO隊列完成狀態和朋友)。
而且,如果您需要CPU提升,則只需禁用CPU power savings in BIOS即可。
相關問題
- 1. 在Windows服務器上的Java應用程序的可能性?
- 2. Windows窗體應用程序性能
- 3. 提高Windows應用程序的性能
- 4. Windows Store應用程序 - SwapChainPanel DrawLine性能
- 5. 應用程序服務性能
- 6. Windows 2003和Windows 2008中的Java Web應用程序性能
- 7. 性能在Windows
- 8. C#Web服務與Windows應用程序
- 9. Java與C++:使用Web服務的應用程序的性能
- 10. Windows應用商店應用GridView性能
- 11. Windows服務屬性
- 12. 啓動Windows服務後Windows Server性能下降。
- 13. Phonegap應用程序性能與原生應用程序性能對比
- 14. 使用Windows Phone應用程序中的圖像 - 性能
- 15. Windows CE OpenCV性能
- 16. Windows StretchBlt API性能
- 17. Linux vs Windows性能
- 18. Windows服務高性能和可伸縮性
- 19. Windows「系統服務」,而不是「web服務」性能
- 20. 與Windows服務運行Windows應用程序
- 21. Windows服務與Windows應用程序 - 最佳實踐
- 22. Windows服務與Windows窗體應用程序VB.NET
- 23. windows桌面應用程序性能測試工具
- 24. 檢查性能的工具/優化ASP.NET Windows應用程序
- 25. .net windows應用程序的性能標準
- 26. 監視Windows 2003/IIS 6.0中的ASP/COM +應用程序性能
- 27. 查找影響.Net應用程序性能的Windows設置
- 28. 性能測試基於Windows /桌面的應用程序
- 29. Windows 2003上的.NET應用程序性能問題
- 30. Windows Forms應用程序的性能測試
優秀的答案。爲了增加這一點(儘管我現在找不到參考文獻......),無論用戶設置如何,服務器和非服務器版本的Windows之間都存在類似的可變量子事物。此外,當然,由於優先級提高對正在發送的事件的影響。 – Damon
@Damon:或許[Windows Vista內核:第1部分](http://technet.microsoft.com/en-us/magazine/2007.02.vistakernel.aspx):'默認情況下,在客戶端版本的Windows線程上允許運行多達2個時鐘滴答(如果在前臺爲6個)'(而不是服務器的3和9)。 –
確實,就是這樣! :) – Damon