私はいくつかのテキストを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
私は彼がすでに "using"ステートメントを含んでいる2番目の例を使用することをお勧めします。 –
私は静的+ロックの場合、他のパラレルコールをブロックすることになります。ロックする必要がない場合は、右ですか?それはうまくいくかもしれませんが、遅くなることがあります。 (私はそれをするつもりはないが、あなたの答えを100%理解しようとしている)。 –