java - 在类内部使用访问器方法?

标签 java optimization accessor

我想知道在类本身中使用类的访问器方法是否会导致任何性能问题。我特别想知道 Java 编译器,但我想这在某种程度上与语言无关。

最佳答案

据我所知,较新的 JVM 非常擅长在启动时和运行中优化字节码。

J2SE SDK v 1.4.2 的文档(已经很老了,接近十年)已经提到 JVM 将在类中内联访问器调用:

“Java VM 的 Java 2 版本会在运行时自动内联简单的方法。在未优化的 Java VM 中,每次调用新方法时,都会创建一个新的堆栈框架。创建一个新的堆栈帧需要额外的资源以及堆栈的一些重新映射,最终结果是创建新的堆栈帧会产生很小的开销。 方法内联通过减少程序进行的方法调用次数来提高性能。 Java VM 内联代码内联返回常量或仅访问内部字段的方法。(强调我的)J2SE SDK 1.4.2_02 Chapter 8 Continued: Performance Features and Tools

另外,我要确保软件最严重的瓶颈实际上是 < 插入任何你认为“慢”的东西,在本例中使用类中的访问器 >。恕我直言,过早的优化是不好的,通过猜测进行优化更糟,所以在尝试修复瓶颈之前,请尝试分析和衡量瓶颈实际上在您认为的位置。

关于java - 在类内部使用访问器方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836443/

相关文章:

java - 动态地将值添加到现有 JTable

mysql - 使用许多 LEFT JOIN 和 GROUP BY 优化 MySQL 查询

java - 在 Android 中读取/写入 SD 卡的最快方法?

c++ - 为什么 if 检查没有被优化

cocoa - Cocoa 是否提供了将键转换为 'set' 属性访问器的内置方法?

Java - Eclipse 中的多个包问题

java - 软键盘的建议条隐藏了部分布局

java - 如何将此shoutOut Canned Message() 方法放入新类中?

objective-c - 当我尝试构建这个简单的 XCode 项目时,为什么会收到 "parse error before ' @' token"?

c# - C# 访问器应该使用私有(private)变量还是即时计算?