2013-07-01 13 views
-2

這是Windows的常見問題。多年來,這是我注意到的事情,它真的讓我感到害怕,因爲我不想再製作應用程序。所以我決定嘗試在我自己的應用程序中修復它。當我最小化一個應用程序(例如,Visual Studio,Windows資源管理器,Internet Explorer,Chrome或任何有史以來的任何其他應用程序)並將其保留一段時間時,會有一個巨大的延遲3到20秒)之間點擊任務欄中的圖標,直到它再次到達WindowState.Normal。如何在x時間內將應用程序最小化時減少內存消耗

這是爲什麼? Windows在桌面上最小化時爲什麼不暫掛進程?我該如何在自己的應用程序中解決這個問題?

我想過使用計時器。當我最小化我的應用程序時啓動計時器,讓它運行一段時間,並說,大約10-15分鐘後,它被最小化,如果它還沒有恢復,開始釋放一些資源,希望釋放一些內存 - 當我嘗試取消最小化我的應用程序時,我認爲這會使響應時間更快,從而不會感覺到我在ER中等待。但我不確定Timer是否是解決這個問題的正確方法,我甚至不確定這是否是正確的解決方案。我所知道的是,我對此感到厭倦,我需要做點什麼。

有沒有人處理過這個?是否有任何文章或有MSDN文檔解決這樣的事情?

如何更好地管理我的應用程序中的資源,以便在不活動一段時間時不會變得太慢?

  • 此問題在任何應用程序中都很常見。不只是我的。

編輯:我不知道該怎麼辦。每當有東西實現IDisposable時,我總是很好地利用using(),而我只是不知道如何嘗試釋放一些資源或加快響應時間。

+1

它是你的應用程序造成緩慢或另一個?如果它閒置並耗費資源..你可以保證它是一個內存泄漏。 –

+1

我有一個類似的問題,但這是完全相反的..看我的[問題](http://stackoverflow.com/questions/4863016/is-it-true-that-in-net-the-garbage-collector-gets - 當你最小化時) - – Anirudha

+0

謝謝@SimonWhitehead。現在,大傢伙使用最多的內存和CPU:Internet Explorer(358MB內存),只有2個選項卡打開(谷歌和SO)。我的應用程序在任何時間點,在任務管理器中只有大約1-5mb的內存和0.n%的cpu,但從任務欄恢復時它們的響應速度非常慢。我認爲這可能是內存泄漏,但我甚至嘗試過使用一組完全不同的應用程序(例如,將Chrome替換爲IE;將Outlook替換爲基於Web的郵件(在Chrome中);用記事本替換Evernote。只是似乎無所謂應用程序是開放的,它總是會發生。 –

回答

2

您描述的症狀似乎表明您的機器缺少物理內存。當您最小化應用程序並激活另一個應用程序時,最小化的應用程序將其內存頁面的許多內容換出到磁盤。當您激活應用程序時,屬於其他應用程序的頁面被換出到磁盤,屬於剛剛激活的應用程序的已換出的頁面將被交換到物理內存中,由於硬盤驅動器相對較慢而需要很長時間。解決方案:添加更多內存,相對便宜。如果你的O.S.是32位的,你可以上升到4GB。如果你的O.S.是64位,無論你的主板支持的是什麼限制。

+1

我有Win8 64bit 。我認爲是升級的時候了。目前,這臺電腦有2GB的RAM和啊,我買了這臺電腦,就像2年前或3年前(也許是4次)。我知道這是很久以前的事了,但我不再使用應用程序,因爲我沒有真正期待這一點,但感謝您的解釋。 :) –

+1

根據今天的標準,2 GB是非常低的。添加RAM應該足夠了,並且會避免你購買另一臺PC。您可能會考慮的另一件事是重新安裝操作系統。 – Tarik

+0

Tarik;感謝堆。我通常只是做驅動器的全格式,並重新安裝操作系統,但這些天我在一個非常有限的帶寬的互聯網計劃(移動寬帶),因此不必重新下載我所有的開發工具如Visual Studio,Eclipse中,Android的工作室和任何其他框架等需要對我來說將是一個巨大的成本,所以不是我願意做的東西,除非絕對必要(我知道增加更多內存也會花費,但我相信這是一個更長期的解決方案/修復比擦拭驅動器和重新安裝)。 –