博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【M15】了解异常处理(exception handling)的成本
阅读量:7064 次
发布时间:2019-06-28

本文共 409 字,大约阅读时间需要 1 分钟。

1、为了在运行期处理异常,程序必须做大量额外的工作。比如,即使抛出异常,也必须保证离开作用域的栈上对象执行析构方法。因此,必须记录try语句的进入点和离开点,记录catch语句能够处理的异常等。这就意味着,程序目标码变大,执行速度慢。

2、即使从未使用任何异常处理,还是必须要付出最低代价,付出一些空间,放置某些数据结构,付出一些时间,保持数据结构的正确性。

3、即使自己的程序没有使用throw,try,catch语句,使用的其他程序库可能有异常处理,因此也要付出代价。

4、对于try语句,没有异常抛出的情况下,代码膨胀5%-10%,速度也下降这个数。

5、如果抛出异常,影响很大,速度可能会比正常情况下慢3个数量级。但是,抛出异常是罕见的,因此可以接受。这也就意味着,在相对正常的情况下,不要抛出异常。

6、考虑到异常对效率的影响,因此,在非用不可的情况下,才使用try语句。在确实是个异常的情况下,才抛出异常。

转载地址:http://fxxll.baihongyu.com/

你可能感兴趣的文章
IIS7基本框架
查看>>
C++的性能优化实践
查看>>
HTML <fieldset> 标签
查看>>
SharePoint 2013中Office Web Apps的一次排错
查看>>
Ubutu 12.04 LTS 安装iNode 后缺少libjpeg.so.62与libtiff.so.3解决方法--软连接问题
查看>>
简单组合逻辑电路的verilog实现(包括三态门、3-8译码器、8-3优先编码器、8bit奇偶校验器)...
查看>>
新浪微博Python SDK笔记——发微博(一)
查看>>
从零开始学C++之构造函数与析构函数(一):构造函数、析构函数、赋值与初始化、explicit关键字...
查看>>
SQL Server 表,记录 死锁解决办法
查看>>
Spring MVC
查看>>
Linux&shell 之Shell命令进阶
查看>>
浏览器内核Trident/Gecko/WebKit/Presto
查看>>
【转】一些图论、网络流入门题总结、汇总
查看>>
hdu 1531(差分约束)
查看>>
这个路口再次遇见你------单例模式在读取配置文件时的应用
查看>>
c# 操作excel 替代方案
查看>>
创建自定义的菜单与按钮
查看>>
tag标签数据库的设计
查看>>
C#操作sqlite数据库使用SQLiteParameter传递参数
查看>>
slick-pg v0.1.5 发布
查看>>