簡體   English   中英

WPF - 在SYSTEM帳戶下執行流程時性能低下

[英]WPF - Low performance when process is executed under SYSTEM account

問題描述

我有一個WPF應用程序,通常在具有管理員權限的本地用戶帳戶下運行。 但是,在某些情況下,該過程由在SYSTEM帳戶下運行的服務或腳本啟動,因此該過程也在SYSTEM帳戶下運行。

問題是,當進程在SYSTEM帳戶下運行時,存在一些明顯的滯后(UI不是非常敏感)。

我使用perfmon進行了一些挖掘並且沒有看到任何可疑的信息(CPU沒有過載,沒有拋出異常異常,沒有內存泄漏等等)。 我還檢查了事件日志,但沒有找到任何有用的信息(沒有警告/錯誤,只有關於系統的無關信息)。

我首先想到的是這個過程是在模擬的上下文中執行的,但即使沒有假冒(我使用PsExec.exe -i -s在SYSTEM帳戶下啟動它),滯后仍然存在。

知道這會來自哪里?
不要猶豫,詢問您是否需要更多信息,我主要是尋找一些有助於找到根本原因的想法(明顯的解決方法是不在SYSTEM帳戶下啟動流程,但這不是真正的修復)。

另請注意,應用程序在Windows Embedded Standard(XP SP3)的自定義版本和帶電容式觸摸屏的設備上運行。

我的問題

我的問題不是“我怎么能解決這個問題?” 但是“為什么應用程序在SYSTEM帳戶下以低性能運行。

更新1

我嘗試更改Windows的性能優化設置,如@Sander建議,沒有任何更改( http://support.microsoft.com/kb/308417 )。

更新2

我還使用此應用程序進行了測試: http//www.kynosarges.org/WpfPerformance.html#Application
在每個帳戶下運行應用程序時,我在第一次GDI +測試的SYSTEM帳戶下一直運行時間大約兩倍(它基本上繪制了一堆三角形),這使我認為這不是嚴格的WPF限制。 同樣,除了執行流程的帳戶外,我沒有更改任何內容。

我認為你應該完全繞過這個問題。 不要給出系統服務UI,而是將應用程序分為兩部分 - 一部分將執行實際操作將作為服務運行(在任何帳戶下有意義),另一部分 - UI - 將作為普通用戶運行處理。

使用WCF可以相對輕松地在兩者之間進行通信。

它將解決您的性能問題,以及您的解決方案所暴露的許多潛在安全問題。

當用戶登錄時,系統中所需的大多數服務都已啟動並正在運行。 例如,您在taskmanager和系統托盤中看到的任何內容。

但是,當你從System acc運行它時,它必須實際啟動你的情況下所需的一些服務我猜你可以通過識別這些服務來解決它並完全使用不同的線程,這可能會減少你的轉向 - 時間。

但是,性能和CPU使用率肯定會受到影響。 我希望這是有道理的。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM