当应用程序最小化x时间量时,如何减少内存消耗



这是Windows的常见问题。这些年来,我注意到了这一点,它真的让我很生气,以至于我不想再制作应用程序了。所以我决定尝试在自己的应用程序中修复它。

当我最小化一个应用程序(例如,Visual Studio、Windows资源管理器、Internet Explorer、Chrome或任何其他应用程序)并将其放置一段时间时,从我单击任务栏中的图标到它到达WindowState之间会有一个巨大的延迟(3到20秒)。再次正常。

为什么会这样?当进程在桌面上最小化时,Windows为什么不挂起进程?我如何在自己的应用程序中解决这个问题?

我考虑过使用计时器。当我最小化我的应用程序时,启动计时器,让它运行一段时间,然后说,在最小化大约10-15分钟后,如果它还没有恢复,就开始释放一些资源,希望释放一些内存——我认为这会使响应时间更快,这样当我试图取消最小化我的程序时,就不会觉得我在急诊室等待。但我不确定定时器是否是处理这个问题的正确方法,我甚至不确定这是否是正确的解决方案。我只知道我对此感到厌倦,我需要做点什么。

以前有人处理过这个问题吗?有没有关于这方面的文章或MSDN文档?

如何更好地管理应用程序中的资源,使它们在一段时间内处于非活动状态时不会变得如此缓慢?

  • 此问题在任何应用程序中都很常见。不仅仅是我的

编辑:我不知道该怎么办。每当有东西实现IDisposable时,我总是很好地利用using(),我只是不知道我还能如何尝试释放一些资源或加快响应时间。

您描述的症状似乎表明您的机器缺乏物理内存。最小化应用程序并激活另一个应用程序时,最小化的应用程序会将其许多内存页交换到磁盘。当您重新激活应用程序时,属于其他应用程序的页面会被交换到磁盘,而属于您刚刚激活的应用程序的先前交换的页面会交换到物理内存,由于硬盘驱动器相对较慢,需要很长时间。解决方案:增加更多的RAM,相对便宜。如果你的O.S.是32位,你可以达到4GB。如果你的O.S.是64位,那么无论你的主板支持什么都是极限。

最新更新