自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.NET Framework回收內(nèi)存操作細(xì)節(jié)披露

開發(fā) 后端
.NET Framework回收內(nèi)存的操作將會在這篇文章中通過一段代碼進(jìn)行詳細(xì)的解讀。實踐之后我們會發(fā)現(xiàn)這一操作步驟將會給編程帶來非常大的好處。

.NET Framework中實際上有很多應(yīng)用技巧需要我們在具體操作中去慢慢發(fā)現(xiàn),從而掌握這些提高開發(fā)效率的應(yīng)用技巧?;?NET Framework 的Windows應(yīng)用程序,你會發(fā)現(xiàn)你對程序的操作越多,占用的內(nèi)存會不斷向上飆升,即使你結(jié)束了長時間運行的操作.這種情況對于一個非常小的應(yīng)用都是這樣.#t#

這種情況一般并不是.Net 內(nèi)存泄露,而是因為.Net沒有即時回收你分配的內(nèi)存。下面是從一個朋友那兒搞到的一段代碼,它能夠幫助你即時實現(xiàn).NET Framework回收內(nèi)存的操作.

 

  1. public class RevokeMemory  
  2. {  
  3. public static void ReduceMemoryFootPrint()  
  4. {  
  5. int currentMinWorkingSetValue = 0;  
  6. int currentMaxWorkingSetValue = 0;  
  7. Process currentProcess = Process.
    GetCurrentProcess();  
  8. try  
  9. {  
  10. if(GetProcessWorkingSetSize(current
    Process.Handle, out currentMinWorking
    SetValue, out currentMaxWorkingSetValue))  
  11. {  
  12. currentProcess.MinWorkingSet = (IntPtr)
    currentMinWorkingSetValue;  
  13. }  
  14. }  
  15. catch(Exception err)  
  16. {  
  17. string additionalInfo = "MinWorkingSet
     value is set to: "
     + currentMinWorking
    SetValue.ToString();  
  18. additionalInfo += " Process In Error: 
    " + currentProcess.ProcessName;  
  19. //Log error message  
  20. }  
  21. }  
  22. [DllImport("kernel32.dll")]  
  23. public static extern bool GetProcess
    WorkingSetSize( IntPtr proc, out int 
    min, out int max );  
  24. [DllImport("kernel32.dll")]  
  25. public static extern bool SetProcess
    WorkingSetSize( IntPtr proc, int min, int max );  

.NET Framework回收內(nèi)存調(diào)用的時機:

1. 主界面上做一個計時器,每間隔一定的時間進(jìn)行調(diào)用,但鄙人認(rèn)為這種效果并不好。在你進(jìn)行長時間運行的操作之前。需要禁止它。

2.每完成一個大的操作或者比較消耗內(nèi)存的操作之后,調(diào)用。

本人做了一個.NET Framework回收內(nèi)存的測試,以前幾時兆的內(nèi)存飆升,現(xiàn)在總的消耗的內(nèi)存都在幾兆到30兆之間了.

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-01-06 10:07:35

.NET Framew

2009-08-26 14:52:19

.NET Framew

2023-03-06 07:50:19

內(nèi)存回收Go

2009-09-18 09:14:49

SharePoint細(xì)

2013-07-24 09:15:18

SAP HANA內(nèi)存數(shù)據(jù)庫

2010-01-06 17:02:28

.Net Framew

2010-01-06 19:38:16

.NET Framew

2010-01-05 17:59:54

.NET Framew

2010-03-05 14:50:08

Python調(diào)用.ne

2010-01-06 15:43:22

.Net Framew

2010-01-05 15:43:13

.NET Framew

2009-09-02 09:23:26

.NET內(nèi)存管理機制

2010-08-25 09:18:13

AMDBulldozer服務(wù)器芯片

2010-01-05 11:26:27

.net Framew

2013-10-11 17:32:18

Linux運維內(nèi)存管理

2012-08-13 10:19:03

IBMdW

2010-01-06 11:30:22

.NET Framew

2011-08-18 09:16:54

OpenFlow協(xié)議控制器

2010-01-06 10:23:47

.NET Framew

2010-01-06 17:12:26

.Net Framew
點贊
收藏

51CTO技術(shù)棧公眾號