![]() |
1
5
语言不可知论版本(很明显,这不包括声明性语言或其他奇怪的语言): 什么时候? 我 它是一种由三种执行指令的方式组成的语言(很长一段时间以前,我可以自由承认)。
这个
记住
请注意,您可以使用
至于哪个速度最快,在 巨大的 大多数情况下。编译器作者比凡人更了解如何从代码中获得最后一点性能。您要么信任他们正确地完成他们的工作,要么自己在汇编中手工编码(我更喜欢前者)。 通过集中于宏视图而不是小的东西,您将获得更高的性能。这包括选择适当的算法、分析和热点定位。每个月花五分钟的时间,在两分钟内完成这项任务,这样做没有什么好处。最好是在每一分钟发生的事情上取得较小的改进。
语言结构如下
即使你发现
|
![]() |
2
13
一条建议是:不要担心哪种语言的结构在微观上比其他语言快或慢,而应该关注哪种语言能让你最好地表达自己。 |
![]() |
3
9
|
![]() |
4
1
虽然不是条件,但它是循环。区别在于while循环的主体可以执行多次,条件的主体只能执行一次或根本不执行。
if和switch之间的区别在于if接受任意表达式作为条件,switch只取值进行比较。基本上,如果你有一个像
|
![]() |
5
1
案例陈述可以写为
但是这种情况更有效,因为它只对条件进行一次评估,然后再对分支进行评估。
|
![]() |
6
1
每个条件语句都有不同的用途,您不会在每个情况下使用相同的条件语句。学习哪一个适合哪种情况,然后编写代码。如果您分析您的代码并发现有一个瓶颈,那么您可以继续并解决它。在实际出现问题之前不要担心优化。 |
![]() |
7
1
您在问一个if结构是否比一个大型循环内的switch语句执行得更快?如果是这样的话,我做了一个快速测试,这个代码被放入了我刚刚在最新的Xcode和iPhone SDK中创建的一个基于视图的新项目的viewdidLoad方法中:
这段代码示例决不是完整的,因为正如前面指出的那样,如果出现的情况比其他情况要多,那么您当然需要将这段代码放在前面,以减少比较的总数。它确实表明,如果在决策或多或少在分支之间平均分配的情况下,if结构的执行速度会更快一些。 另外,请记住,在设备上运行测试与在模拟器上运行测试之间,这个小测试的结果在性能上有很大差异。代码注释中引用的时间在实际设备上运行。(第一次显示的时间是第一次运行代码时运行循环的时间,第二次显示的时间是在不重新生成的情况下再次运行同一代码时的时间。) |
![]() |
8
0
有 conditional statements 和 conditional loops . (如果要信任维基百科,那么在编程中简单地引用“条件”并不包括条件循环。但这只是一个小的术语问题。) Shmoopty说,“由于这些声明有不同的作用,所以讨论哪个更快是毫无意义的。”
好。。。可能花的时间不多,但不是
荒谬的
. 例如,假设你有一个
您可以将其转换为最多执行一次的循环:
后者在几乎任何语言中都会变慢(或速度相同,因为优化器将其转换回原始语言
但这些事件很少发生。重点应该放在你的代码上——是什么让代码最清晰,以及什么捕获了你的意图。 |
![]() |
9
-1
循环和分支很难简单地解释,要从任何C样式语言的构造中获得最佳代码,取决于所使用的处理器和代码的本地上下文。主要目标是减少执行管道的中断——主要是通过减少分支预测失误。 我建议你 go here 满足所有优化需求。这些手册是为C样式的程序员编写的,如果您知道一些汇编,则相对容易理解。这些手册应该向您解释现代处理器中的微妙之处,顶级编译器使用的策略,以及构造代码以充分利用它的最佳方法。 |
![]() |
10
-4
我只记得 关于条件和分支代码最重要的事情 .按如下顺序订购代码
您必须使用其他序列…在这种情况下,CPU中的预测逻辑将正确预测
More information 来自英特尔。尤其:
按照这个规则,你是 给出CPU提示 关于如何将其预测逻辑偏向于链接的条件。 |