日期:2014-05-17 浏览次数:20820 次
刚刚接触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
差距也够大的!看来姜还是老的辣啊,微软优化的还不够……