建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程。应该尽量在循环当中对异常发生的一
建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内
如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程。应该尽量在循环当中对异常发生的一些条件进行判断,然后根据条件进行处理。
做个测试:
![](/assets/blank.gif)
Stopwatch watch = Stopwatch.StartNew();int x = 0;for (int i = 0; i < 10000; i++){try{int j = i / x;}catch{}}Console.WriteLine(watch.ElapsedMilliseconds);watch = Stopwatch.StartNew();for (int i = 0; i < 10000; i++){if (x == 0){continue;}int j = i / x;}Console.WriteLine(watch.ElapsedMilliseconds);Console.ReadKey();
![](/assets/blank.gif)
输出为:
796
0
以上代码中,我们预见了代码肯能会发生DivideByZeroException异常,于是,调正策略,对异常发生的条件进行了特殊处理:Continue让效率得到了极大的提升。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程。应该尽量在循环当中对异常发生的一相关推荐
- 编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内...
建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程.应该尽量在循环当中对异常发生的一些条 ...
- 【转】编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内...
建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程.应该尽量在循环当中对异常发生的一些条 ...
- [V8]找出可能影响性能的代码(模式)
原文地址:Tracing Patterns that Might Hinder Performance 原文作者:Jakub Rożek 译文出自:掘金翻译计划 本文永久链接:github.com/x ...
- 在2D数组上进行迭代时,为什么循环顺序会影响性能?
本文翻译自:Why does the order of the loops affect performance when iterating over a 2D array? Below are t ...
- 《编写高质量代码:改善c程序代码的125个建议》——建议20-6:尽量将循环嵌套控制在3 层以内...
本节书摘来自华章计算机<编写高质量代码:改善c程序代码的125个建议>一书中的第3章,建议20-6,作者:马 伟 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...
- 循环增加li id_循环老化对于锂离子电池中锂和电解液分布的影响
锂离子电池在循环的过程中持续的界面副反应,会引起电解液消耗和活性Li的损失.同时在锂离子电池内部由于温度.电流和压力等因素的不均匀性,会导致在锂离子电池内部的副反应也存在明显的不均匀性. 近日,德国慕 ...
- java代码异常处理会影响性能_编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理...
原创地址:http://www.cnblogs.com/Alandre/(泥沙砖瓦浆木匠),需要转载的,保留下! 文章宗旨:Talk is cheap show me the code. 大成若缺,其 ...
- 流言粉碎机:JAVA使用 try catch会影响性能
流言粉碎机:JAVA使用 try catch会影响性能 一.JVM 异常处理逻辑 二.关于JVM的编译优化 1. 分层编译 2. 即时编译器 1. 解释模式 2. 编译模式 3. 提前编译器:jaot ...
- 别被骗了,try-catch语句真的会影响性能吗?
前言 不知道从何时起,传出了这么一句话:Java中使用try catch 会严重影响性能. 然而,事实真的如此么?我们对try catch 应该畏之如猛虎么? 一.JVM 异常处理逻辑 Java 程序 ...
最新文章
- 启程 - 《每日五分钟搞定大数据》
- SparkStreaming使用checkpoint存在的问题及解决方案
- MySQL数据库初识(基础语句)
- 计算机桌面是是在哪个盘,电脑虚拟内存是设置在哪个盘的
- 如何进行云主机迁移?看这一篇文章就够了!
- C库宏-offsetof()
- 【Qt】解决GDAL直接读取数据到QImage导致图像歪斜的问题
- [Codeforces673A]Bear and Game(水题,思路)
- 我的bolg,我的收获(MVC首次接触)
- (31)System Verilog类class详解
- linux中搭建java开发环境
- 吴伯凡-认知方法论-既然认知意味着痛苦,为什么选择认知?
- rss订阅,全文阅读,渴望大家发贴的时候在RSS中总是显示全文
- HttpClient模拟登陆并获取指定页面的内容
- 【动态规划】CH_0103 最短Hamilton路径
- LVGL系列(四)概述 之 位置、尺寸和布局
- Python实例---爬取下载喜马拉雅音频文件
- 微型计算机基础知识答案,第1章 微型计算机基础知识 题库和答案.doc
- 操作系统学习(一)(B站视频)
- ecmall后台拿Shell
热门文章
- 配置maven私服nexus
- ImportError: cannot import name ‘xxx‘ from ‘xxx‘
- adb命令行打开Android settings
- python Excel xlwt 富文本 同一单元格内设置不同样式
- 声音定位系统中一些问题
- 前后端分离项目-我爱蜗家网站平台
- 计算机专业毕业自我鉴定800字,计算机专业毕业自我鉴定范文
- 练习-Java多路分支之月份天数计算
- coreldraw怎么画猴子_小猴头像简笔画【CDR11设计制作逼真的小猴头像实例教程】...
- SHA 和 RSA 的区别