刚刚接触C#,据说C#的异常处理很耗费性能。
于是来做个测试。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Stopwatch w = new Stopwatch();
w.Start();
int a =10;
for (int i = 0; i <= 1000; i++)
{
Int32.TryParse("a", out a);
}
w.Stop();
Console.WriteLine(w.ElapsedMilliseconds);
w.Reset();
w.Start();
for (int i = 0; i <= 1000; i++)
{
try
{
Int32.Parse(null);
}
catch (Exception e)
{
}
}
w.Stop();
Console.WriteLine(w.ElapsedMilliseconds);
Console.Read();
}
}
}
输入的结果为:
0
6780
差距可真够大的。看来C#中使用TryParse还是很有必要的!
再来看看java的。同样的代码:
public class Test {
public static void main(String[] args) {
long start = System.currentTimeMillis();
for(int i=0; i<1000; i++){
try{
Integer.parseInt(null);
}catch(Exception e){
}
}
System.out.println(System.currentTimeMillis()-start);
}
}
输出结果为:
2
差距也够大的!看来姜还是老的辣啊,微软优化的还不够……