gpt4 book ai didi

java - 在 Android 上调用方法的成本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:10 24 4
gpt4 key购买 nike

我创建了一个只在一个地方调用的方法 - 从 RecyclerView 中的 onBindViewHolder()。它是一个逻辑代码单元,我认为将该代码块提取到一个方法中可以提高可读性。但是,在代码审查期间,我被告知方法调用的开销很大,因此会对性能产生负面影响,我应该内联代码而不是将其放在单独的方法中。

我认为 JVM 或编译器会通过内联方法来优化此代码,但我不确定在 Android 上是否如此。我还没有真正找到任何关于新 ART JVM 进行何种优化的具体信息。

在 Android 上调用一个方法是否非常昂贵,以至于我应该在可能多次调用该方法的地方以可读性为代价避免它?此外,由于 DEX 方法的限制,创建这样的一次性方法是否令人不悦? (此应用已在使用 multidex)。

这个问题不是其他类似 java 问题的重复,因为我专门询问 Android 上的性能,它有自己的特性。

最佳答案

我完全不同意。理论上,方法调用确实会增加一些开销。必须将事物压入堆栈,然后跳转到该方法。但开销微不足道。

过早的优化从来都不是一个好主意。对您的应用程序进行基准测试并找出真正的性能问题所在。我敢肯定,这不会是因为单个方法调用,即使是被频繁调用的方法。该方法如何实现可能是个问题,但不是调用本身。

关于java - 在 Android 上调用方法的成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36751914/

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