我正在計劃一個應用程序,它涉及到一次加載很多圖片,因此需要大量的內存。例如,我可能一次創建50個圖像對象,總共需要1GB的RAM。但是當用戶去加載20張圖片時,我想確保已經預留並準備好了大量的內存。如何爲我的應用程序保留內存並保留指定的數量?
現在這部分可能看起來有點偏離正常。而不是指定我的應用程序應該保留多少內存,而是需要指定爲其他應用程序釋放多少內存,並根據此規範週期性地調整應用程序的內存。我必須說,我從來沒有在預留內存方面工作過,尤其是不知道如何離開剩餘的可用內存。例如,如果計算機有2048 MB的RAM,並且該選項設置爲其他應用程序可以使用50 MB,並且其他應用程序已經使用了10 MB的RAM,則應該保留2048- 50-10 = 1988 MB爲我的應用程序。
我預見的麻煩是假設用戶打開另一個需要1GB的應用程序。我的應用程序必須抓住這個並縮小自己。
這是否聽起來像一個可行的方法?基本上,我需要確保在任何給定時間儘可能多地保留內存,同時爲其他應用留下可觀的數量。如果我這樣做,會不會對性能產生重大影響?我可能會以快速的步伐加載和卸載圖像,而且我不希望它按需保留/釋放該內存,我希望它保持保留。
+1這是一個很好的問題,我完全不知道它爲什麼會降低效果。 – 2011-12-23 22:47:39
@David。我正要問同樣的問題。 Downvoters:請提供一個理由,否則我們會認爲這只是一些試圖重寫莎士比亞的猴子的作品... – 2011-12-23 23:22:12
This [article](http://msdn.microsoft.com/en-us/library/aa175282%28v= sql.80%29.aspx)是舊的,但它解釋了SQL Server 2000如何執行它。您可能會感興趣..請注意,我知道的所有應用程序都以這種方式進行操作,因此具有用於調整內存使用情況的其他選項。 – 2011-12-24 02:24:31