11
A
回答
13
9
任何智能编译器都不会真正显示它们之间的区别。 A for
循环实际上只是语法糖对于某种形式的while
循环,反正。
1
它应该可以忽略不计。一个优化编译器应该使这个区别不存在。
1
这是通过查看拆卸容易确定的事情。对于大多数循环,假设你做同样的工作,它们将是相同的。
int i = 0;
while (i < 10)
++i;
相同
for (int i = 0; i < 10; ++i)
;
至于嵌套,这真的取决于你如何配置它,但相同的设置应产生相同的代码。
1
应该是零差异,但请检查,因为我已经看到真正蹩脚的旧版GCC在两者之间创建不同的代码ARM/Thumb代码。在减去一个比较之后优化一个比较以设置零标志,而另一个则不是。非常跛脚。
再次嵌套应该没有区别。不确定SSE /矢量化的东西,但我希望没有什么区别。
0
VS2015,英特尔至强CPU
long long n = 1000000000;
int *v = new int[n];
int *v1 = new int[2*n];
start = clock();
for (long long i = 0, j=0; i < n; i++, j+=2)
v[i] = v1[j];
end = clock();
std::cout << "for1 - CPU time = " << (double)(end - start)/CLOCKS_PER_SEC << std::endl;
p = v; pe = p + n; p1 = v1;
start = clock();
while (p < pe)
{
*p++ = *p1;
p1 += 2;
}
end = clock();
std::cout << "while3 - CPU time = " << (double)(end - start)/CLOCKS_PER_SEC << std::endl;
FOR1 - CPU时间= 4.055
while3 - CPU时间= 1.271
相关问题
- 1. 与C#相比,F#的性能如何?
- 2. x64性能与x86相比
- 3. Haskell矢量性能与Scala相比
- 4. Amazon SQS与RabbitMQ相比性能下降
- 5. 与Apache相比,Node.js的性能如何?
- 6. iText7与iTextSharp相比的性能问题
- 7. 与Java相比,Android C有更好的性能吗?
- 8. C#VS C++性能比较
- 9. 相比CPU性能 - 继续
- 10. 蟒蛇性能相比freebasic
- 11. 与mvc/oop相比,spaghetti php code的性能和可扩展性?
- 12. c#性能:类型比较与字符串比较
- 13. 性能用C++比较
- 14. OpenCV:C++和C性能比较
- 15. System.out.println与PrintWriter性能比较?
- 16. 与V8的性能比较
- 17. IIS与Kestrel性能比较
- 18. 比较数组之间的相似性
- 19. 与C#相比,简单循环上的F#代码性能不佳 - 为什么?
- 20. Android仿真器性能与真实设备性能相比如何?
- 21. 之前()失败,而与空值相比
- 22. F#属性与C#属性的对比
- 23. Valgrind与Linux性能相关
- 24. 比较C#中RSA,ManagedRijndael和Managed AES之间的性能差异
- 25. 与Hibernate或JDBC相比JPA批处理的性能糟糕
- 26. 合并排序性能与插入排序相比
- 27. MongoDate性能与Unix时间戳相比较排序
- 28. 从性能角度来看,嵌入MongoDB与参考相比
- 29. 实体框架5与ServiceStack相比的性能Orm lite
- 30. HashSet <T>性能(与ObservableCollection <T>相比)?
我很高兴你只是暂时削弱。我是永久的,我认为这让我有点逆转。我不仅是开箱即用的,我无法在箱子中取得*。无论如何,如果您在尝试展示如何进行严肃的优化时,您可能会意识到,只有在性能调优的最后阶段,这样的事情才会有所作为。祝你学习好。 – 2010-05-21 13:12:04
@Mike谢谢。很抱歉听到你的消息。可悲的是,一个人需要许多事情是理所当然的,然后意识到他们失去了多少重要性:-( – Anycorn 2010-05-25 02:39:57