WPF应用程序运行时的性能问题,无需右键单击并选择"以管理员身份运行"

时间:2016-07-12 10:56:11

标签: c# wpf

我有一个WPF应用程序,将在Windows 10平板电脑上使用。 在我的开发环境中,应用程序运行速度非常快。但是,如果我在没有管理员权限的平板电脑上运行应用程序,则应用程序响应非常慢:所有动画都很慢,滚动不顺畅,触摸问题可见(无法移动插入符号)。如果应用程序具有管理员权限,则一切正常。

我试图禁用日志,我试图降低FPS,似乎没有任何帮助。 我的应用程序连接到sqlite数据库,但即使不访问数据库也很慢。没有其他连接可能需要管理员权限。 可能是什么问题?

编辑:此外,在我的开发环境中,应用程序运行速度较慢,没有管理员权限。我使用管理员权限运行VS2015,因此应用程序正常运行。

3 个答案:

答案 0 :(得分:2)

WPF在HKEY_CURRENT_USER下的设置可以禁用硬件加速:

https://msdn.microsoft.com/en-us/library/aa970912(v=vs.110).aspx

如果设置了“禁用硬件加速选项”或“使用参考光栅化器选项”,则WPF应用程序将为该用户运行缓慢。

答案 1 :(得分:1)

尝试使用Process Monitor跟踪您的应用。运行带有和不带管理员权限的应用运行的2个跟踪。仅通过Tools->Process Tree... -> right click on your process -> Add to Include filter过滤您的应用事件,并比较这些跟踪日志(或在此处发布)。注意注册表密钥读数或网络访问之间的差距。

字面上可以是任何东西。 Mark Russinovich几乎每年都会做一个关于寻找一些有趣案例的演讲。 Here's one of them

P.S。我很抱歉发布这个作为答案,但我现在没有足够的积分来添加评论。

答案 2 :(得分:0)

为那些可能面临同样问题的人提供答案,现在,在我搜索了很多有用的东西之后,我可以说这个问题主要是与权利相关的问题。    如果遇到此问题,请尝试运行Visual Studio 而不使用管理员权限,并尝试隔离应用程序开始非常慢的区域(或者它崩溃的地方)。就我而言,不是数据库或日志文件,而是外部程序集使用的 AppData 中的文件。我已经看到,每次调用dll时,应用程序都冻结并使用 dotTrace ,我已经设法找到它使用的文件。在该文件上设置权限(r / w)后,一切都恢复正常。