问题描述
我有一个 WPF 应用程序,通常在具有管理员权限的本地用户帐户下运行。但是,在某些情况下,该进程是由运行在下面的服务或脚本启动的SYSTEM
帐户,因此该进程也在SYSTEM
帐户。
问题是当进程运行时SYSTEM
帐户时,存在一些明显的滞后(用户界面响应不是很灵敏)。
我使用 perfmon 进行了一些挖掘,没有看到任何可疑的东西(CPU 没有超载,没有抛出异常异常,没有内存泄漏等......)。我还检查了事件日志,没有发现任何有用的信息(没有警告/错误,只有有关系统的不相关信息)。
我首先认为这是由于进程在模拟上下文中执行,但即使没有模拟(我使用PsExec.exe -i -s
在 SYSTEM 帐户下启动它),滞后仍然存在。
知道这会从哪里来吗?
如果您需要更多信息,请毫不犹豫地询问,我主要是在寻找一些有助于找到根本原因的想法(明显的解决方法是不在 SYSTEM 帐户下启动该进程,但这并不是真正的修复)。
另请注意,该应用程序在 Windows Embedded Standard (XP SP3) 的自定义版本和具有电容式触摸屏的设备上运行。
我的问题
我的问题不是“我该如何解决这个问题?”但是“为什么应用程序在 SYSTEM 帐户下运行时性能较低。
Update 1
我尝试按照 @Sander 的建议更改 Windows 性能优化设置,但没有任何改变(http://support.microsoft.com/kb/308417 http://support.microsoft.com/kb/308417).
Update 2
我还使用这个应用程序做了一个测试:http://www.kynosarges.org/WpfPerformance.html#Application http://www.kynosarges.org/WpfPerformance.html#Application
在每个帐户下运行应用程序时,在第一个 GDI+ 测试的 SYSTEM 帐户下,我的运行时间始终长出大约两倍(它基本上绘制了一堆三角形),这让我认为这并不是严格的 WPF 限制。同样,除了执行进程的帐户之外,我没有更改任何内容。