【发布时间】:2018-08-21 13:32:27
【问题描述】:
我是一家小公司的独立开发人员。最近,我们对我们所有的 UI 进行了完全重写,以配置我们的核心产品 windows 服务。我主要为 Windows 8、8.1 和 10 进行开发。我们没有发现任何问题,而且 U.I.看起来很棒。当将任何应用程序部署到具有与我们用来测试的其他盒子相同的硬件的 Windows 7 X64 时,我们看到打开任何用 WPF dot net 4.5 编写的应用程序时启动时间接近 30 秒,无论复杂性或缺乏(在显示一个没有任何内容的 WPF 表单时存在同样的问题,只是一个空白表单)。这非常令人沮丧,因为这使它们无法使用,因为其中一个应用程序是自定义凭据提供程序 U.I.要求用户等待 UI 的持续时间是不合理的。显示以便他们可以登录。其他配置实用程序在用户空间中运行时加载时间很慢,所以我认为这与从我们编写的凭据提供程序 COM 对象启动无关。任何人都可以阐明这个问题吗?我真的不想回去赢取表格,因为我们真的很喜欢 WPF 提供的新外观和感觉。我们是否可以使用一些补丁、更新或技巧来让一台具有足够马力的机器像其 8 和 10 对应物一样运行?
所有机器都是相同的 i7 3.47 Ghz 双核和 8 gig 内存;这应该足够了。
更新: 安装 .net 4.7.2 将启动时间从大约 30 秒大幅加快到大约 6 秒。仍然不能接受,但我猜是在正确的轨道上。
提前致谢。
【问题讨论】:
-
这里有一些好东西可以开始。 docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/…
-
感谢您的回复,但与优化无关。就像我说的,来自新创建项目的空白表单表现出相同的行为。我将调查 NGen,看看我还能做些什么。这是非常不幸的......再次感谢您的快速回复
-
@ScottJasin 您是否尝试对自己的表现进行基准测试?您可以在 Visual Studio 或 PerfView 中使用 Performance Profiler。尝试做一些基准测试,这将帮助您缩小问题范围。
-
您的空白表格是全新的应用程序吗?因为它可能链接到您正在加载的某些 dll 或链接到您的项目的某些 DB 无法访问或类似的东西......
-
延迟太久是环境问题。首先假设它是一个网络延迟,SysInternals 的 TcpView 可以提供洞察力。查看“.net disable crl”的谷歌点击往往很有用。接下来是反恶意软件。
标签: wpf performance .net-4.5 windows-7-x64