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