欢迎来到SpringWater的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

如何使用BigDecimal会影响应用程序性能?

如果你正在开发一个低延迟的交易程序,你真正想要在延迟方面的竞争,然后BigDecimal是不适合你,它是那样简单。在微秒的情况下,对象创建和任何十进制数学就太昂贵了。

我认为,对于大多情况下,使用BigDecimal是想都不用想,因为它会对应用程序的性能一点可见影响。

在作出交易决定延迟关键系统,任何不可预知的垃圾收集暂停是完全乱了,大量短命的BigDecimal对象会给GC带来压力,并导致CMS收集器中更大的Stop-The-World暂停,他们不一定在适当的时候延迟5毫秒可能会花费你很多钱。希望大型系统是以非OOP风格编写的,很少或根本没有使用某些实体字符串(代码等)。

你一定会需要使用double(甚至float),并采取命中精度。 - 这绝对是要避免的!

使用 bigdecimal 和double 计算 速度相差84倍(自我测试类测试) 。用于计算的算法  速度自然就慢了下来。

如果对于精度要求不高,当然用 double直接算了。

如果对精度要求高的话  只能 使用 bigdecimal 。

posted @ 2021-04-22 10:12  骑ZHU看夕阳```  阅读(309)  评论(0)    收藏  举报