您好,登錄后才能下訂單哦!
這篇文章主要講解了“.NET Framework如何實現內存回收”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“.NET Framework如何實現內存回收”吧!
.NET Framework中實際上有很多應用技巧需要我們在具體操作中去慢慢發現,從而掌握這些提高開發效率的應用技巧。基于.NET Framework 的Windows應用程序,你會發現你對程序的操作越多,占用的內存會不斷向上飆升,即使你結束了長時間運行的操作.這種情況對于一個非常小的應用都是這樣.
這種情況一般并不是.Net 內存泄露,而是因為.Net沒有即時回收你分配的內存。下面是從一個朋友那兒搞到的一段代碼,它能夠幫助你即時實現.NET Framework回收內存的操作.
public class RevokeMemory
{
public static void ReduceMemoryFootPrint()
{
int currentMinWorkingSetValue = 0;
int currentMaxWorkingSetValue = 0;
Process currentProcess = Process.
GetCurrentProcess();
try
{
if(GetProcessWorkingSetSize(current
Process.Handle, out currentMinWorking
SetValue, out currentMaxWorkingSetValue))
{
currentProcess.MinWorkingSet = (IntPtr)
currentMinWorkingSetValue;
}
}
catch(Exception err)
{
string additionalInfo = "MinWorkingSet
value is set to: " + currentMinWorking
SetValue.ToString();
additionalInfo += " Process In Error:
" + currentProcess.ProcessName;
//Log error message
}
}
[DllImport("kernel32.dll")]
public static extern bool GetProcess
WorkingSetSize( IntPtr proc, out int
min, out int max );
[DllImport("kernel32.dll")]
public static extern bool SetProcess
WorkingSetSize( IntPtr proc, int min, int max );
}
.NET Framework回收內存調用的時機:
1. 主界面上做一個計時器,每間隔一定的時間進行調用,但鄙人認為這種效果并不好。在你進行長時間運行的操作之前。需要禁止它。
2.每完成一個大的操作或者比較消耗內存的操作之后,調用。
感謝各位的閱讀,以上就是“.NET Framework如何實現內存回收”的內容了,經過本文的學習后,相信大家對.NET Framework如何實現內存回收這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。