java - java中调用空方法会占用资源吗?

标签 java performance

我问的原因是因为在我的程序中我有一个父类,它包含子类可能使用或不使用的方法。我只是想知道编译器是否针对每个子实例对此进行了优化,或者是否需要少量资源来检查是否存在某些内容?

最佳答案

JVM 使用某些启发式方法来决定内联哪些方法。该方法需要是一个热点(即被调用足够多次以使内联有值(value)),它不应该很大,并且不应该被子类覆盖(这会修改其行为并使优化无效)。可能还有其他启发法。

在您的情况下,如果这些空方法从未被重写,并且它们被调用足够多次,它们可能会被内联。

您还可以启用 java 命令行标志来查看 JIT 正在做什么(即它是否内联方法),而不是猜测。请参阅此博文:https://techblug.wordpress.com/2013/08/19/java-jit-compiler-inlining/

关于java - java中调用空方法会占用资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43482380/

相关文章:

java - 我可以尝试哪些 HttpClient 风格可以执行 url 并获取字符串形式的响应?

java - 带有 JUnit 测试的 Log4J

数字和破折号的 Java 正则表达式

java - 为什么实例变量不能在类中初始化?

java - Apache Camel 与构造函数注入(inject)

python - 如何在不依赖框架的情况下使用 python 进行 Web 开发?

performance - FrameTiming和FrameTimingManager的正确用法是什么

performance - 如何让 Android 应用保持横向

java - 如何识别字符串是否包含无法使用 utf8-mb4 字符集存储的特殊字符

java - Java 中的 FPS 低