【问题标题】:Slow startup of Clickonce winforms application after update更新后 Clickonce winforms 应用程序启动缓慢
【发布时间】:2009-08-20 20:08:57
【问题描述】:

我们有一个 winforms 应用程序,它通过 clickonce 部署给用户并使用自动更新功能。

我们注意到,对于我们的用户来说,在点击一次更新后,应用程序需要几分钟才能出现。应用程序可执行文件在此期间以相当高的 CPU 使用率运行,但没有显示任何窗口。

这在开发人员的机器上无法重现。用户的机器和开发者的机器有两个主要区别:

  1. 用户正在运行 windows xp,而开发人员正在运行 windows vista。
  2. 开发人员与 clickonce 服务器位于同一域中,而用户位于不同域中,该域与 clickonce 服务器所属的域具有 2 向信任关系。

应用程序的冷启动性能在更新后运行一次后几乎是瞬时的。

以下链接适用于 msdn 论坛上遇到相同问题的人,但没有发布解决方案: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/5ec061c4-ec6f-4101-98a6-dc8bb5acab60

由于开发人员无法在本地进行复制,我们还没有对应用程序在此期间所做的事情进行分析跟踪。

对为什么会发生这种情况有任何想法或有关如何解决问题的建议?

谢谢。

编辑 08/24/2009:创建了一个运行 XP 的 32 位虚拟机,并将其加入到与用户相同的域中。该问题未在虚拟机中显示。这似乎消除了 XP 和域成员身份作为问题的根源。这似乎使 VLAN、系统配置和补丁级别成为潜在的罪魁祸首。

【问题讨论】:

    标签: c# winforms clickonce


    【解决方案1】:

    更新应用程序时,所有新程序集都需要及时编译。这通常只发生一次,因此可以解释为什么初始启动速度很慢以及为什么您无法在开发人员机器上重现。

    我发现新部署的首次运行 .Net 应用程序的性能非常差(几分钟与几秒钟),因为用户正在运行防病毒软件,因为防病毒工具会检查新的 Jitted 程序集是否存在恶意。

    如果您能够监控应用程序的初始启动 - 检查是否加载了 mscorjit.dll 以及该进程消耗大量 CPU 的原因是由于抖动。还要检查是否有任何防病毒工具消耗大量 CPU。

    【讨论】:

    • 好吧,QA 机器上不会出现启动缓慢的情况,它们也是 vista 并且与开发人员机器相同的域。这似乎排除了 Jitting 是罪魁祸首。
    • 这段时间主要消耗cpu的是应用程序可执行文件本身。
    • 质检机有杀毒软件吗?客户机器吗?
    • 用户、QA、开发者的机器上安装相同的杀毒软件。
    • csc.exe 不做 Jitting。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2021-11-30
    • 2010-11-08
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    相关资源
    最近更新 更多