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毫秒。

  • 相关阅读:
    C语言inline函数(转)
    C++ 输入ctrl+z 不能再使用cin的问题
    VMware无法识别USB设备
    python manage.py 命令
    求二叉树的最小深度
    Vim的分屏功能(转)
    一些Python的惯用法和小技巧:Pythonic
    Docker(十五)-Docker的数据管理(volume/bind mount/tmpfs)
    Docker(十四)-Docker四种网络模式
    Docker(十三)-Docker save and load镜像保存
  • 原文地址:https://www.cnblogs.com/059212315/p/5731826.html
Copyright © 2011-2022 走看看