今天正好碰到ToUpperInvariant,之前没有用过,就顺手查阅了下,看到有人对这2个方法的性能分析,就稍微验证了下:
对比博文:http://blog.csdn.net/bclz_vs/article/details/6607558
在上面的博文中说的是ToUpperInvariant的性能优于ToUpper,但我用StopWatch做100000次循环对比出来是ToUpper的性能优于ToUpperInvariant,难道微软改过实现机制了?
测试代码:
string str = "abcadfadfadfadfaadfaaa";
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
for (int i = 0; i < 100000; i++)
{
str.ToUpperInvariant(); //28左右
}
sw.Stop();
this.label1.Text = sw.ElapsedMilliseconds.ToString();
sw.Restart();
for (int i = 0; i < 100000; i++)
{
str.ToUpper(); //21-23之间
}
sw.Stop();
this.label3.Text = sw.ElapsedMilliseconds.ToString();
望有朋友能分析一二