使用 BigDecimal 将如何影响应用程序性能?
我想使用BigDecimal来表示低延迟交易应用程序中的任意精度数字,如价格和金额,每秒有数千个订单和执行报告。
我不会对它们进行很多数学运算,所以问题不在于 BigDecimal 本身的性能,而在于大量的 BigDecimal 对象将如何影响应用程序的性能。
我担心的是,大量短暂的BigDecimal对象会给GC带来压力,并导致CMS收集器中更大的Stop-The-World暂停 - 这绝对是我想避免的。
您能确认我的担忧并提出使用BigD的替代方案吗?另外,如果您认为我的担忧是错误的 - 请解释为什么。
更新:
感谢所有回答的人。我现在确信使用BigDecimal会损害我的应用程序的延迟(即使我仍然计划测量它)。
目前,我们决定坚持使用“非常非OOP”的解决方案(但没有准确性命中) - 使用两个s,一个用于尾数,另一个用于指数。这背后的基本原理是,基元被放置在堆栈上,而不是堆上,因此不受垃圾回收的影响。int