gpt4 book ai didi

java - 调用库比使用自己的代码慢吗?

转载 作者:行者123 更新时间:2023-12-01 07:58:16 25 4
gpt4 key购买 nike

我对字节码和编译代码知之甚少。我有一个方法,它的性能非常关键。还有另一种方法可以使用 java 的 API 和 apache 库来执行相同的操作。但我担心涉及两个额外的类会使该方法变慢。所以我的问题是,关于性能,使用自己的代码有什么优势吗?

这些是我自己的代码和使用库的方法:

public final static List<Long> longArrayToLongList(long[] array)
{
if (array == null)
{
return null;
}

List<Long> list = new ArrayList<Long>(array.length);
for (long value : array)
{
list.add(Long.valueOf(value));
}
return list;
}

public final static List<Long> longArrayToLongListWithLib(long[] array)
{
return Arrays.asList(ArrayUtils.toObject(array));
}

最佳答案

regarding performance, is there any advantage in using your own code?

在 JVM 级别,没有。

一个类,无论是你的类还是库的类,都会由类加载器加载,之后所有类都是平等的。方法是invoke{special,static,virtual,interface} d [1] 同样,方法的字节码使用完全相同的 JIT 机制(内联、循环展开、转义分析,等等)进行优化。

因此,唯一的区别在于代码本身的性能。为此,您需要进行微基准测试(例如使用 jmh 或 caliper)。

[1] 这些是四个主要字节码执行指令,以及 invokedynamic

关于java - 调用库比使用自己的代码慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27483350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com