我正在使用一个将 Object 类型作为其输入的接口。这对我来说很不幸,因为我有时需要通过接口传递原始数据。这当然迫使我装箱。
分析表明该区域是代码中的热点。因此,我正在探索使这个领域更快的替代方案。
我今天对此的一个想法是预先分配一个静态原始数组,并将原始值存储在其中,然后传递数组(然后在接口的实现中,从数组中获取双精度值。
我写了一些代码来测试这个。对于相当高的值(1000 万),我看到数组方法明显更快。随着我增加测试的迭代次数,两者会收敛。
我想知道以前是否有人考虑过这种方法,以及是否有任何关于如何很好地进行基准测试的建议。
示例代码:
Double data = Double.valueOf(VALUE);
inst.interface(data);
//inside interface(Object object)...
Double data = (Double) object;
double d = data.value();
对...
doublearray[0] = VALUE;
inst.interface(data);
//inside interface(Object object)...
double[] data = (double[]) object;
double d = data[0];
谢谢!RB