先show一下两段代码,两段代码都能比较好的实现业务逻辑,但是在高并发下,如果传入的参数为空,那么两段代码的性能表现完全不一样。

private static string Get(string filter)
        {
            if (string.IsNullOrEmpty(filter))
                return "Error";
            else
                return "OK";
        }

private static string GetData(string filter)
        {
            if (string.IsNullOrEmpty(filter))
                throw new ArgumentException();
            else
                return "OK";
        }

下面是两个方法各循环1000次代码和结果:

static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 1000; i++)
            {
                Get(string.Empty);
            }
            sw.Stop();
            Console.WriteLine("Loop 1000 Get Method :" + sw.ElapsedMilliseconds);

sw.Start();
            for (int i = 0; i < 1000; i++)
            {
                try
                {
                    GetData(string.Empty);
                }
                catch
                { }
            }
            sw.Stop();
            Console.WriteLine("Loop 1000 GetData Method :" + sw.ElapsedMilliseconds);

Console.ReadLine();
        }

通过数据来看,性能差异还是非常非常大的。“不要用异常做逻辑判断”,写代码时要时刻谨记这条原则,否则一不小心就挖坑了。

最新文章

  1. explode,split,preg_split性能比较
  2. VBA 操作数字
  3. java与mysql连接
  4. Linux强化论:15步打造一个安全的Linux服务器
  5. 人人网的账号登录及api操作
  6. Unknow Unknow
  7. 【号外号外:微软收购 .NET 的开源实现 Xamarin 项目的公司】
  8. Angular4.0.0正式版发布
  9. 《HelloGitHub》第12期
  10. JavaScript笔记之第五天
  11. python---哈希算法实现
  12. Linux: yum配置说明
  13. 修改docker0默认IP地址
  14. MongoDB GridFS 存储文件
  15. VueJs(10)---vue-router(动态路由,嵌套式路由,编程式路由)
  16. python简说(二十九)线程,进程
  17. std::cout &lt;&lt; char + int
  18. 十、 持久层框架(MyBatis)
  19. ngx_http_stub_status_module
  20. html , body , margin , overflow 之大乱战

热门文章

  1. 爬取文件时,对已经操作过的URL进行过滤
  2. python no module named builtins
  3. C++11 中的function和bind、lambda用法
  4. Android Studio 修改包名最便捷做法
  5. C#学习-类的成员
  6. [转] 浅析JavaScript设计模式——发布-订阅/观察者模式
  7. Socket.Io+HttpWebRequest 请求Api
  8. Angularjs 学习笔记-2017-02-05-初识Angular及app、model、controller、repeat指令和fileter、orderBy
  9. luogu 1471
  10. Codeforces 348D Turtles LGV