java-从字符串实例化BigDecimal的最快方法
作者:互联网
考虑一个应用程序
>从文本文件读取数千个String值.
>(通过正则表达式匹配)选择那些代表数字的值(从简单的整数到以尾数科学记数法表示的非常大的值).
>对于代表数字的每个String值,实例化一个BigDecimal对象(每秒总计数千个Bigdecimal对象).
>使用每个实例化的BigDecimal对象进行进一步处理.
在上述情况下,显然每个BigDecimal对象的实例化都会对性能产生影响.
从非null字符串str实例化那些BigDecimal对象的一种方法是:
BigDecimal number = new BigDecimal(str.toCharArray(), 0, str.length()));
String constructor of BigDecimal正是在JDK的Oracle实现中扩展的.
是否有更快的方法从此类字符串实例化BigDecimal对象,或通过替代方法?
解决方法:
我会用
BigDecimal number = new BigDecimal(str);
这比较简单,而且差异不大可能无关紧要.
如果您需要性能,而又不需要超过15位的精度,则可以改用double.
您需要提高性能我将在微优化之前查看整个应用程序的性能.您提到使用正则表达式,并且与创建字符串或BigDecimal相比,它可以使用更多的CPU.您可以描述您的应用程序吗?
标签:performance,instantiation,bigdecimal,java 来源: https://codeday.me/bug/20191031/1977682.html