首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

单精度浮点数误差与消除方法

不同精度的混合计算之间也会有截断,就比如一个float32单精度浮点数,符号占1位,指数占8位,尾数占23位。而一个float64双精度浮点数,符号占1位,指数占11位,尾数占52位。...可以看到,在使用了Kahan求和公式之后,虽然还是使用的float32单精度浮点数,但其实结果精度已经比普通的单精度计算高了两个量级。...而使用了Kahan求和公式之后,虽然还是略有误差,但是误差位已经超过了float32单精度浮点数第7位有效数字的范围,因此Kahan求和公式的精度还是非常高的。...总结概要 在使用浮点数计算时,尤其是在使用AI框架的过程中,我们往往使用的是float32单精度浮点数,这也跟GPU的硬件架构有关系。...但是使用单精度浮点数的过程中,务必要考虑到累加误差和大数吃小数的问题,这两个问题在长时间的迭代过程中,有可能会直接导致计算结果就是错误的。

9210

只会写js而不会排bug的人,做不了好前端

定义有很多,在我这至少包括能写js能排错。有些人因为面试的次数多了,什么样的面试题都见过,成了面霸成了面试小能手。...js面试题写的666,面试谈话也很ok,但实际的开发经历不多,所以他们的短板在于实际工作中的疑难杂症的排除经验。 为什么会有些同学过不了试用期呢?...这个看到是指页面的不正常,要么是dom不正常,要么是js报错,要么是数据有问题,基本上就在这三个方面之内。...第3,看看这个bug,是js引起的,还是data引起的?这是在确定问题是谁的责任。 第4,如果是js引起的,那么要在bug出现的前后不同位置,分别打上console.log来查看打印信息进行调试。...//////// bug多种多样,所以只能写如何解决它们的策略。可能许多同学更习惯的是“针对具体的bug,然后直接给出解决方法”,但很可惜这种银弹式的答案是不存在的。

1K80

Bug之路-串包Bug

Bug之路-串包Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。...串包Bug现场 前置故障Redis超时 由于某个系统大量的hget、hset操作将Redis拖垮,通过监控发现Redis的CPU和IO有大量的尖刺,CPU示意图下图所示: ?...Bug复盘 此次Bug是由Redis本身Server负载太高超时引起的。Bug的现象是通过Jedis去取对应的Key值,得不到预期的结果,简而言之包乱了,串包了。...缩小Bug范围 首先:Redis是全球久经考验的系统,这样的串包不应该是Redis的问题。 第二:Redis刷新了key后Bug依然存在,而业务系统重启了之后Okay。...Bug推理 笔者意识到,之所以串包可能是由于jedisClient里面可能有残余的数据,导致读取的时候读取到此数据,从而造成串包的现象。

1.3K10

Bug之路-串包Bug

笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。现在就挑一个案例出来,写出分析思路,以飨读者,希望读者在以后的工作中能够少踩点坑。...串包Bug现场 前置故障Redis超时 由于某个系统大量的hget、hset操作将Redis拖垮,通过监控发现Redis的CPU和IO有大量的尖刺,CPU示意图下图所示: CPU达到了100%,导致很多...Bug复盘 此次Bug是由Redis本身Server负载太高超时引起的。Bug的现象是通过Jedis去取对应的Key值,得不到预期的结果,简而言之包乱了,串包了。...缩小Bug范围 首先:Redis是全球久经考验的系统,这样的串包不应该是Redis的问题。 第二:Redis刷新了key后Bug依然存在,而业务系统重启了之后Okay。...Bug推理 笔者意识到,之所以串包可能是由于jedisClient里面可能有残余的数据,导致读取的时候读取到此数据,从而造成串包的现象。

67810

Bug之路-Druid的Bug

Bug之路-Druid的Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。...前言 此Bug是Druid低版本的Bug,此Bug至少在1.0.12版本就已经修复。...Sharding Proxy的Bug 于是此问题又萦绕在笔者心头,在又一番不下于上述过程的努力之后,发现一个月之前上线的新版本的Sharding Proxy的内存泄露Bug导致频繁GC(并定位内存泄露点...与此类似,如果DB负载过高的话,笔者推测也会触发Druid的Bug。...终于这次的连环Bug算是填完了。 总结 追查Bug,日志和源码是最重要的两个部分。最源头的日志信息量最大,同时要对任何不同寻常的现象都加以分析并推测,最后结合源码,才能最终找出Bug

91050

Bug之路-TCP粘包Bug

Bug之路-TCP粘包Bug 前言 关于TCP流 TCP是流的概念,解释如下 TCP窗口的大小取决于当前的网络状况、对端的缓冲大小等等因素, TCP将这些都从底层屏蔽。...TCP粘包Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。...Bug现场 出Bug的系统是做与外部系统进行对接之用。这两者并不通过http协议进行交互,而是在通过TCP协议之上封装一层自己的报文进行通讯。如下图示: ?...此后一切正常,交易量也回归正常,仿佛刚才的Bug从来没有发生过。在此之前,此系统已经稳定运行了好几个月,从来没出现过错误。 但是,这事不能就这么过去了,下次又出这种Bug怎么办,继续重启么?...事实上,在笔者解决各种Bug的过程中,经常通过猜想等手段定位出Bug的原因。但是从现场取证,通过证据去解释发生的现象,通过演绎去说服同事,并对同事提出的种种问题做出合理的解释才是最困难的。

81820

回归BUG

当软件一直处于发现BUG和解决BUG的循环中时,为什么我们需要执行回归用例?我们需要定期执行回归测试。我们这样做的原因是发现回归缺陷。...当发现由于修补程序而触发其他功能BUG时,这些BUG称为回归BUG。例如,假设登录页面有一些BUG,开发人员已修复它。现在,登录页面可以正常工作,但是注册页面正在引起一些验证或其他之前不存在的BUG。...由于登录页面上的修复,可能导致了新BUG,这是一个回归中发现的BUG,很容易被错过。 回归BUG很难处理 回归BUG通常是不可避免的,需要在发布软件之前对其进行修复。...「时间复杂性」:截止日期临近时,回归BUG可能会带来很大挑战。开发人员很少有时间来修复新检测到的BUG,他们往往急于修复测试同学刚刚提出BUG而不会关注可能导致的回归BUG。...处理回归BUG 有几种方法可以帮助测试团队有效地处理回归BUG。 代码审查 不仅开发,甚至测试脚本都需要定期检查代码。检查测试用例,以确保它们足以验证组件的每个模块。

1.7K30
领券