作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下简单的逻辑来回答 question就像这个:
1: if(a) // 1 operation
2: if (b) // 1 operation
和
1: if(a && b) // 1, 1(&&), 1 => 3 operations.
因此,是 2 个操作与 3 个操作,但在第一个示例中,编译器需要调用另一条指令来执行。
这个逻辑是真的吗?它取决于编译器吗?调用像 ;
这样的空指令是否会花费编译器一些明显的时间?
This 也讨论同样的问题但不考虑这个逻辑。请帮助我们澄清这个问题。
最佳答案
有两种方法可以准确地回答这样的问题:
1.) 查看 IL 代码(和/或)汇编代码生成并计算执行此代码所需的 CPU 周期(提示:这不适合初学者)
2.) 构建一个小型测试程序,大量执行这两种变体,使用 StopWatch() 创建有用且可读的计时输出,运行多次。
3.) 推测你认为编译器的优化步骤能够做什么以及这个软件会做什么,与其他人争论几个小时
关于java - if(a&&b) 是否应该比 if(a) if(b) 花费更多时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29033373/
我是一名优秀的程序员,十分优秀!