我有一些代碼,我正在revewing,它用於一些文字轉換爲MD5 Hash
。很棒。它被用來創建一個的gravatar頭像的MD5Hhash
。它是: -哪一段代碼更高效?
static MD5CryptoServiceProvider md5CryptoServiceProvider = null;
public static string ToMD5Hash(this string value)
{
//creating only when needed
if (md5CryptoServiceProvider == null)
{
md5CryptoServiceProvider = new MD5CryptoServiceProvider();
}
byte[] newdata = Encoding.Default.GetBytes(value);
byte[] encrypted = md5CryptoServiceProvider.ComputeHash(newdata);
return BitConverter.ToString(encrypted).Replace("-", "").ToLower();
}
請注意我們如何在第一次創建MD5CryptoServiceProvider
這個方法被調用? (爲了簡單起見,不用擔心這裏的比賽條件)。
我想知道,是不是更昂貴的計算,如果我改變了用於創建提供的線,這...
using(var md5CryptoServiceProvider = new MD5CryptoServiceProvider())
{
... snip snip snip ....
}
現在,這是怎麼方法中使用/消費?那麼,想象這是StackOverflow的主頁 - >爲每個帖子生成用戶的md5哈希值,以便我們可以生成他們的gravatar url。所以這個視圖可能會調用這個方法幾十次。
,但不嘗試浪費太多時間在強調premature optimzation,等等...這將是更好?
因此,你建議他應用「使用」聲明,對吧? – Overhed 2009-05-20 15:06:16