下面是实现字符串反转的四种方法:
static string Reverse1(string original)
}
static void Main(string[] args)
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Reverse(Array array)
}
public StringBuilder Append(string value)
Revease1()中对char[]进行了两次赋值(ToCharArray()和Array.Revease),所以我有想到了Revease2和Revease3()两种方法,下面是对这四种方法进行简单性能测试的代码:
测试结果是Revease1()代码最简洁,运行速度也最快,Revease21()和Revease22()其次,Revease3()最慢。可见.net framework中实现的ToCharArray()和Array.Revease()效率还是蛮高的^_^
但还有个奇怪的问题,就是Debug版本中的Revease1()和Revease21()运行起来要比Release版本中的要快,而Revease22()和Revease3()就比较正常。按说Release时做了更多的优化工作,运行起来更快才对,迷惑ing...,下面是测试结果:
Debug:
1 : 00:00:03.4375000
21: 00:00:06.1250000
22: 00:00:09.9687500
3 : 00:01:05.5468750
Release:
1 : 00:00:05.7812500
21: 00:00:07.4218750
22: 00:00:08.2500000
3 : 00:00:50.3593750
附1:Array.Revease()方法的源码(由Reflector.exe反汇编得到):
附2:StringBuilder.Append()方法的源码(由Reflector.exe反汇编得到):
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1357692