自动装箱和性能

我有一个应用程序,我执行数十万计算。 目前我们所有的价值都是双打。 我正在使用JFormula引擎进行大部分计算,并注意到api采用了双参数,因此当我传入Double时会发生一些自动装箱。 我已经阅读了一些文章,并创建了一些简单的测试,并且确实注意到了性能损失,但我仍然试图弄清楚通过我的代码并修复它所花费的时间,值得任何性能改进。 我想知道是否有其他人通过使用原语获得了类似的东西和性能提升的经验?

将自动装箱和拆箱用于科学计算或其他对性能敏感的数字代码是不合适的。 – 太阳常见问题

除了其他建议(好的 – 分析和基准测试非常重要)之外,我会说如果JFormula在每个方法调用中执行任何重要操作,那么在进行调用时装箱/取消装箱可能是无关紧要的。 特别是取消装箱很快,因为它不需要任何内存分配 – 只是真的从盒子中复制现有的值。

简而言之:肯定会进行测试,但我不希望这次打击很重要。

您可以尝试使用和不使用自动装箱来制作简单的基准测试。 通过时间分析器运行它们(建议使用visualvm)。 找出时差并将其缩放到您的程序,以查找程序中的大致时间