【发布时间】:2013-06-29 03:16:13
【问题描述】:
底线:速度很重要。
我查看了我的代码,并决定寻找更多方法来提高它的效率(即使提高一毫秒,那也很棒)。所有这些数据成员、方法、无用的数据创建——我们都被教导要遵循指导方针以及如何去做和不去做。
循环除外。
我们一直被鼓励使用它们,因为它们有助于提高代码的可读性并帮助用户。用户。在我说出了我脑海中的定义之后,我想到了这个想法:
for (int i = 0; i < 100; i++)
{
//whatever code
}
让我们假设我们知道长度的情况。这将执行代码 100 次,但它执行了 201 次可以省略以帮助机器的操作。如果我们复制粘贴代码 100 次,扔掉初始化、条件和终止会怎么样:
//Code[0]
//Code[1]
//Code[2]
//...
这是一点点,但仍然......
这是效率狂人的常见做法吗?
【问题讨论】:
-
底线:编译器在这方面比你(或我)更聪明:D。如果您真的对性能感到好奇,请运行一些(嗯,很多)性能配置文件。密切注意可以应用的所有不同编译器优化标志和目标架构。这通常被称为“循环展开”——我敢说这是一个“疯狂”的想法。
-
“疯子”就是这个词。现代编译器和解释器将非常有效地完成这类事情。您应该努力分析您的代码并处理那些耗时且重复执行的部分。我相信你能找到比
for循环更好的东西 -
记住,“越大越慢”。
标签: performance for-loop