性能优化的异常与正常逻辑的处理。
来源:互联网 发布:linux declare 编辑:程序博客网 时间:2024/04/28 18:25
有一个交易业务有多个业务逻辑,举一个简单的例子一个支付交易可能有现金,购物券,打折卡之类同时支付。正常的逻辑就是每一个支付种类都是一个事务,需要同时开启多个事务,如果以后再有其它组合方式,事务会更多。
这时交易如果交易异常,一种想法是把已经成功的事务保存下来,下次重新提交时提交未成功的事务。
这看下看起来很好,在处理异常时支付时可以节省前面已经成功的事务的开销。
但是,我们要知道,99.x%的情况下我们是不需要这样的逻辑的,这样的处理是每次提交无论是正常的还是重试的都要检查之前是否有已经成功提交过的事务。这为99.x%的正常业务逻辑增加了负担,所以优化只可能会偶然会出现异常逻辑而增加绝对大多数正常逻辑的负担,结果是适得其反的。
所以进过优化后我们在正常逻辑的时候直接就线性处理,不再进行断点保存。在出现异常后重新对所有事务提交,虽然在异常逻辑中开销更大,但整体性能有了很大的提高。(除非你的业务有50%的机会出现异常) 0 0
- 性能优化的异常与正常逻辑的处理。
- 异常一般用于突发情况的处理,而不是用于正常的业务逻辑判断
- 物理DG与逻辑DG的区别与逻辑DG同步异常处理方法
- CPU计算逻辑性能的优化
- 异常处理的性能损失
- 异常处理的性能问题
- 异常处理和异常的代码优化
- Android性能优化-内存泄露的检查与处理
- java异常处理对性能的影响
- 网络IO与逻辑处理的分离
- View与ViewGroup的分发处理逻辑
- 用户登陆优化网络异常的处理
- 黑马程序员--异常与异常的处理
- 黑马程序员--异常与异常的处理
- 异常与错误的处理
- 异常的捕获与处理
- 异常的捕获与处理
- System.exit(n),正常退出与异常退出的区别
- 北京经纬信息技术公司"企业级轻量框架"内训圆满结束
- LINQ
- JavaScript 计时
- 解决 Weblogic Proxy 服务器中文乱码的问题
- Flex程序的运行过程
- 性能优化的异常与正常逻辑的处理。
- mysql客户端乱码,修改配置文件
- HttpContext详解
- HDU 1142
- 揭秘:中国第一个核心系统在云上的基金公司
- Delphi客户端访问.NET Webserivce时遇到传入参数为空的问题解决!
- rails acts_as_nested_set
- 数据仓库与数据挖掘
- java学习#spring(不是最新)