[討論] GCC、Clang使用C++編寫?

作者: Matz (妹妹C吸)   2020-04-18 00:59:21
是這樣的。
GNU GCC 原本使用C語言編寫,隨著Clang、LLVM的崛起,
改由C++編寫,Ian Lance Taylor也表示C++效能不會輸給C
而且能設計出更好,更容易維護的程式。
但本魯很不解,C++複雜的程度遠遠超過C,為何還能設計出效能
不亞於使用C編寫的編譯器???
有大大能夠解或嗎????
感謝各位大神了。
作者: lunasdejavu (我的頭上長香菇了)   2020-04-18 01:02:00
有哪裡測試數據說效能不輸阿
作者: SMMIT (Negan)   2020-04-18 02:01:00
查到一篇 sort 比 qsort 快https://www.geeksforgeeks.org/c-qsort-vs-c-sort/這一篇有 Ian Lance Taylor 的簡報連結https://lwn.net/Articles/542457/整理一下第一個連結,以 sort, qsort 為例子。C++ STL sort 用 template 實踐可以在 compile time 生出程式碼,讓編譯器最佳化。C 的 qsort 因為 comparator 需要傳入 function pointer ,所以無法在 compile time 最佳化。從第二個連結看來 Ian 應該是指需要擔心效能的地方一樣用 C寫,其餘用 C++ 好維護。
作者: Matz (妹妹C吸)   2020-04-18 11:34:00
感謝大大幫忙
作者: prokofieff (回不去了吧...)   2020-04-18 13:21:00
簡單來說 C++把盡量能先算完的都丟到compile time先算
作者: superpandal   2020-04-18 17:46:00
..............................
作者: plsmaop (plsmaop)   2020-04-18 20:19:00
gcc llvm 都有做 const folding const propagation,compile time 能做的也做了很多我倒覺得是在 compiler 越來越厲害的情況下用 c++ 能寫出來的程式效能差距不大
作者: a1u1usul3 (Q-Max)   2020-04-18 20:47:00
編譯時間clang不一定比較快,問題是gcc是GPL license
作者: Bencrie   2020-04-18 22:45:00
gcc 是 gpl 這對一般不是做 compiler 的有什麼問題嗎你不會以為 gcc build 出來的 binary 會感染 GPL 吧 XD
作者: a1u1usul3 (Q-Max)   2020-04-19 02:58:00
會影響developer的人數
作者: flypaper (一直飛)   2020-04-19 18:10:00
gcc 通常編比較快吧

Links booklink

Contact Us: admin [ a t ] ucptt.com