WPF应用程序启动时间太长

时间:2011-12-16 13:44:14

标签: c# .net wpf vb.net fluent

我正在创建一个使用Fluent库的WPF应用程序。

在装有Windows 7,2GB RAM和AMD Triple Core处理器的计算机上,双击程序图标后,大约1-2秒后会显示Splash图像。

但在我兄弟的旧电脑上使用Windows XP,512MB RAM和Intel Celeron 2.0 GHz处理器(单核),双击程序图标后,首先,一个名为PresentationFontCache.exe的进程运行,它几乎100%使用CPU几秒钟。显示初始Splash图像所需的总时间几乎是30秒(或更长)。

我不希望某些用户必须等待30秒才能显示启动图像,并且大约需要7-8秒才能加载应用程序。 (我的应用程序加载过程需要7-8秒)

另外我认为1-2秒对于只显示初始SplashImage 来说太高了,它应该立即显示。

如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

  

但在我哥哥的旧电脑上使用Windows XP,512MB RAM和Intel Celeron 2.0 GHz处理器

是的,并且猜测 - 开始上网exlporer也需要很长时间。这不是电脑,而是垃圾。至少1GB的备忘录会有所帮助。 WPF应用程序不是超低资源应用程序,它们是为现代操作系统而制作的。

  

我不希望某些用户必须等待30秒才能显示启动图像

使用.NET标准闪存机制(甚至在运行时完全初始化之前加载)。

http://www.abhisheksur.com/2010/05/creating-splash-screen-without-code.html

然后加载WPF代码。

答案 1 :(得分:1)

听起来您可以对应用程序的性能进行分析,以查看瓶颈位置并发现导致它的原因,以便您可以知道在代码中要修复的内容以优化性能。

您可以使用类System.Diagnostics命名空间。像PerformanceCounter类等。

如果您有一些钱可以使用RedGate Develper Bundle for .NET它有性能分析器,内存分析器等。

还有其他cheaper替代方案。

答案 2 :(得分:0)

Presentationfontcache.exe是一个属于.NET Framework的Microsoft Corporation的Windows Presentation Foundation Service。它通常使用高CPU。

您可以尝试通过删除它创建的文件来停止服务:Windows \ ServiceProfiles \ LocalService \ AppData \ Local \ FontCache4.0.0.0.dat并重新启动服务以检查是否有帮助。