作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚读了这个帖子 Critical loop containing many "if" whose output is constant : How to save on condition tests?
还有这个Constant embedded for loop condition optimization in C++ with gcc这正是我想用 Java 做的。
我有一些 if 条件被调用了很多次,这些条件由初始化时定义的属性组成,并且不会改变。
Javac 是否会通过删除条件中未使用的分支来优化字节码,从而避免花时间测试它们?我必须将属性定义为 final 还是没有用?
谢谢你的帮助,
奥雷连
最佳答案
Java 编译时优化非常缺乏。如果您可以使用 switch 语句,它可能会做一些微不足道的优化。如果属性的数量非常大,那么 HashMap 将是您最好的选择。
最后我要说的是,这种事情很少成为瓶颈,过早地对其进行优化会适得其反。如果您的代码实际上被调用了很多,那么 JIT 优化器将尽最大努力使您的代码运行得更快。只需说出您想要发生的事情,当您发现确实值得花时间对其进行优化时,只需担心“如何”发生。
关于java - 包含许多 “if” 的关键循环,其输出为常量 : How to save on condition tests ? 对于 Java ;),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553561/
我是一名优秀的程序员,十分优秀!