gpt4 book ai didi

.net - WPF - 在 SYSTEM 帐户下执行进程时性能低下

转载 作者:可可西里 更新时间:2023-11-01 13:14:38 26 4
gpt4 key购买 nike

问题描述

我有一个 WPF 应用程序,它通常在具有管理员权限的本地用户帐户下运行。但是,在某些情况下,该进程由在 SYSTEM 帐户下运行的服务或脚本启动,因此该进程也在 SYSTEM 帐户下运行。

问题是当进程在 SYSTEM 帐户下运行时,有一些明显的滞后(UI 响应不是很灵敏)。

我使用 perfmon 做了一些挖掘,没有发现任何可疑的东西(CPU 没有重载,没有抛出不寻常的异常,没有内存泄漏,等等......)。我还检查了事件日志,但没有发现任何有用的信息(没有警告/错误,只有与系统无关的信息)。

我首先认为这是由于在模拟上下文中执行的进程,但即使没有模拟(我使用 PsExec.exe -i -s 在 SYSTEM 帐户下启动它),滞后仍然存在。

知道这是从哪里来的吗?
如果您需要更多信息,请不要犹豫,我主要是在寻找一些有助于找到根本原因的想法(明显的解决方法是不要在 SYSTEM 帐户下启动该过程,但这并不是真正的解决方法)。

另请注意,该应用程序在自定义版本的 Windows Embedded Standard (XP SP3) 下运行,并且在具有电容式触摸屏的设备上运行。

我的问题

我的问题不是“我怎样才能解决这个问题?”但是“为什么应用程序在 SYSTEM 帐户下运行时性能低下。

更新1

我尝试按照@Sander 的建议更改 Windows 的性能优化设置,但没有任何改变(http://support.microsoft.com/kb/308417)。

更新2

我还使用此应用程序进行了测试:http://www.kynosarges.org/WpfPerformance.html#Application
在每个帐户下运行该应用程序时,第一次 GDI+ 测试(它基本上绘制了一堆三角形),我始终在系统帐户下获得大约两倍的运行时间,这让我认为这不是严格的 WPF 限制。同样,除了执行流程的帐户外,我没有更改任何内容。

最佳答案

我认为你应该完全绕过这个问题。不要提供系统服务 UI,而是将您的应用程序分为两部分 - 一个将执行实际操作的部分将作为服务运行(在任何有意义的帐户下),另一部分 - UI - 将作为普通用户运行过程。

使用 WCF 可以相对轻松地在两者之间进行通信。

它将解决您的性能问题,以及您的解决方案暴露的许多潜在安全问题。

关于.net - WPF - 在 SYSTEM 帐户下执行进程时性能低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20906195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com