zoukankan      html  css  js  c++  java
  • C#异常处理性能测试

    异常处理性能测试

    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int cnt = 1000;
                StringBuilder sb = new StringBuilder();
                string msg = "";
                Stopwatch w = new Stopwatch();
                w.Start();
                int a = 10;
                for (int i = 0; i <= cnt; i++)
                {
                    Int32.TryParse("a", out a);
                }
    
                w.Stop();
                msg = string.Format("Int32.TryParse {0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
                sb.AppendLine(msg);
    
                w.Reset();
                w.Start();
                for (int i = 0; i <= cnt; i++)
                {
                    try
                    {
                        int a2 = 1;
                    }
                    catch (Exception e)
                    {
    
                    }
                    finally
                    {
    
                    }
    
                }
    
                w.Stop();
    
                msg = string.Format("try catch中执行 a2 = 1 {0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
                sb.AppendLine(msg);
    
                w.Reset();
                w.Start();
                for (int i = 0; i <= cnt; i++)
                {
                    try
                    {
                        Int32.TryParse("a", out a);
                    }
                    catch (Exception e)
                    {
    
                    }
                    finally
                    {
    
                    }
                }
    
                w.Stop();
                msg = string.Format("try catch中执行 Int32.TryParse无异常 {0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
                sb.AppendLine(msg);
    
    
                w.Reset();
                w.Start();
                for (int i = 0; i <= cnt; i++)
                {
                    try
                    {
                        Int32.Parse("a");
                    }
                    catch (Exception e)
                    {
    
                    }
                    finally
                    {
    
                    }
                }
    
                w.Stop();
    
                msg = string.Format("try catch中执行 Int32.Parse有抛异常{0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
                sb.AppendLine(msg);
    
                w.Reset();
                w.Start();
                for (int i = 0; i <= cnt; i++)
                {
                    try
                    {
                        throw new Exception("1");
                    }
                    catch (Exception e)
                    {
    
                    }
                    finally
                    {
    
                    }
                }
    
                w.Stop();
                msg = string.Format("try catch中执行 throw new Exception有抛异常{0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
                sb.AppendLine(msg);
    
                Console.WriteLine(sb.ToString());
    
                Console.Read();
            }
        }
    }  

    输出结果:

    Int32.TryParse 1000次:0毫秒

    try catch中执行 a2 = 1 1000次:0毫秒

    try catch中执行 Int32.TryParse无异常 1000次:0毫秒

    try catch中执行 Int32.Parse有抛异常1000次:6276毫秒

    try catch中执行 throw new Exception有抛异常1000次:4904毫秒

    结论:

    1. C#中使用 TryParse性能较好。

    2. 一次异常处理大约耗时5毫秒。

  • 相关阅读:
    实战:垂直电商如何撬动“女人腰包”
    谈谈项目收尾
    项目管理心得:一个项目经理的个人体会、经验总结
    IT项目经理沟通技巧的重要性
    项目跟踪:项目跟踪要跟踪什么呢?
    会员营销,你真的做到了吗?
    Git入门——基础知识问答
    文摘:威胁建模(STRIDE方法)
    写在2015年工作的第一天
    简化工作——我的bat文件
  • 原文地址:https://www.cnblogs.com/059212315/p/5731826.html
Copyright © 2011-2022 走看看