2009-11-03 81 views
3

什麼可能導致執行進程從Windows服務運行速度慢於從命令行運行? 當我使用管理員權限從命令行執行進程(另一個exe)時,它比windows服務執行相同進程時快四倍。什麼可能導致這一點。 目錄和文件的權限對於該帳戶可以。它運行成功,速度只有4倍。需要關於如何調查以找出問題的想法。什麼可能導致從Windows服務執行的進程運行速度比從命令行(admin)運行慢?

我們一直在使用sysinternals processexplorer並沒有看到任何東西。

Advance選項卡在哪裏可以修改「優先級」以查看是否導致問題?

回答

2

在Windows後臺服務可能會給予較低的優先級,並且可以在計算機屬性的高級選項卡中進行配置。

+0

在計算機管理對話框中:服務和應用程序:服務我右鍵單擊服務並選擇屬性,此UI上沒有高級選項卡,我在哪裏可以找到高級選項卡? – javelinBCD 2009-11-03 22:05:02

+0

系統屬性 - >高級 - >性能 - >設置 - >高級調整以獲得更好的性能 - >選擇「後臺服務」,這是服務器的默認設置,但不適用於工作站。 – 2009-11-03 23:49:38

+0

這完全沒有區別。我已經使用Process Hacker將IO,頁面和進程優先級提升到了較高的水平,並且它仍然運行得更慢3到4倍。這真的很奇怪。它不影響Vista核心和更早版本(Windows 2008 Web服務器沒問題,但Windows 2008服務器R2不是)。 Google搜索幾乎沒有關於這個問題的任何信息。它似乎影響CPU /內存密集型運行比IO密集型運行更差。 – 2016-01-21 12:14:41

2

假設兩個應用程序的優先級相同,您需要profile the app並查看哪些調用花費的時間最多。這應該至少給你提供足夠詳細的信息以回答並詢問「爲什麼這個特定的調用運行緩慢」而不是「爲什麼我的應用程序運行緩慢」。

1

從www.sysinternals.com下載sysinternals進程監視器工具,然後開始跟蹤應用程序,它將向您顯示進程在註冊表/文件訪問方面所做的工作,並可能會顯示在發生延遲。

如果你有調試符號,它也可以給你正在調用的dll/app的函數調用名稱,但即使知道發生延遲時發生了什麼,以及正在使用哪些dll,用戶模式或內核給你一個很好的指示從哪裏開始。

相關問題