从空闲状态返回时,WPF应用程序速度很慢

时间:2010-09-10 20:05:07

标签: wpf performance

我有一个WPF(.Net 3.5 sp1)应用程序,它在启动时加载一堆数据(启动需要几秒钟),但在加载数据后它运行良好。 当应用程序运行时,如果我没有触摸它一段时间(比如几个小时),然后我替换它,那么它会“非常慢”地“唤醒”。 我的问题:

  1. 为什么?是因为.Net释放了我从内存加载的大数据,它必须以某种方式恢复它?

  2. 即使我知道在应用程序完成之前我会封存内存,我可以在我的应用中做些什么来防止这种行为?

2 个答案:

答案 0 :(得分:0)

正如Jay建议的那样,这几乎肯定会发生,因为应用程序的数据正在写入页面文件。

如果计算机在您的控制之下,请尝试关闭页面文件。如果计算机有大量内存,并且您没有同时运行大量程序,您可能会发现实际上并不需要页面文件。

答案 1 :(得分:0)

我可以看到两种出路:

  1. 在与GUI分离的线程中访问所有缓存数据(这可能需要大量工作才能重写),
  2. 添加一些定时器触发的调用,该调用始终有效(可能只是从缓存中获取一些随机数据)并且它会使您的应用程序保持非空闲状态,从而阻止其内容转到页面文件。