MD5編碼的內存泄露

MD5CryptoServiceProvider 若是屢次使用會產生內存溢出,以下這樣調用幾百萬次就會出現內存
溢出。
public  static  string  MD5Encode( string  source)
{
     if  ( string .IsNullOrEmpty(source))
         return  source;
 
     MD5 md5 =  new  MD5CryptoServiceProvider();
     byte [] s = md5.ComputeHash(Encoding.UTF8.GetBytes(source));
     return  BitConverter.ToString(s).Replace( "-" "" );
}
 
 
緣由:
    MD5CryptoServiceProvider 調用了非託管對象,錯誤的使用方法致使非託管對象的沒法釋放
 
解決辦法:
    方法一:調用md5.Dispose()方法
    方法二:使用MD5CryptoServiceProvider方法時使用using方法,讓程序自動釋放相關資源。
 
此問題在開發LogParser時遇到過,後來經過using解決了,可是未詳細瞭解具體致使緣由,經過閱
讀博客發現了詳細描述,在此進行記錄,  
 
詳細描述:
http://my.oschina.net/runescape/blog/552942
相關文章
相關標籤/搜索