如何使用BigDecimal会影响应用程序性能?
如果你正在开发一个低延迟的交易程序,你真正想要在延迟方面的竞争,然后BigDecimal
是不适合你,它是那样简单。在微秒的情况下,对象创建和任何十进制数学就太昂贵了。
我认为,对于大多情况下,使用BigDecimal
是想都不用想,因为它会对应用程序的性能一点可见影响。
在作出交易决定延迟关键系统,任何不可预知的垃圾收集暂停是完全乱了,大量短命的BigDecimal对象会给GC带来压力,并导致CMS收集器中更大的Stop-The-World暂停,他们不一定在适当的时候延迟5毫秒可能会花费你很多钱。希望大型系统是以非OOP风格编写的,很少或根本没有使用某些实体字符串(代码等)。
你一定会需要使用double
(甚至float
),并采取命中精度。 - 这绝对是要避免的!
使用 bigdecimal 和double 计算 速度相差84倍(自我测试类测试) 。用于计算的算法 速度自然就慢了下来。
如果对于精度要求不高,当然用 double直接算了。
如果对精度要求高的话 只能 使用 bigdecimal 。
作者:SpringWater
出处:https://www.cnblogs.com/springwater/
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!