當前位置:
首頁 > 新聞 > 中軟國際哈爾濱ETC:C語言和C加加 哪個效率更高

中軟國際哈爾濱ETC:C語言和C加加 哪個效率更高

很多小夥伴都會有這樣的疑問,C語言和C 執行效率上哪一個更高呢?

針對這樣的問題,今天我們就一起來看一下吧!

1.開發效率

當代碼量比較小的時候,使用c語言可以很方便的就完成代碼的開發和維護,但是當代碼量達到一定數目以後,c 面向對象的思想的優勢就很好的體現出來了,這種思想使代碼重用更加高效。

2.執行效率

從語言特性角度上來看,C 是C的超集。

在(C ) - C的這部分語言特性中有很多會降低執行效率。一個例子是dynamic_cast,執行一個dynamic_cast要消耗100-300個CPU cycles,因為機器要跳到一段特別的snippet(一小段程序)去檢查type inheritance。

除了語言特性,通常比較語言也會比較它們的標準資料庫。

例如C 中std::sort函數肯定比C語言中的qsort快(因為template function的優點),但是C 中的iostream系列又比C的printf系列慢幾乎3倍,但是由於C 標準庫功能比C語言大得多,許多時候我們可以用較少的開發時間就在C 中實現相同的演算法。

另外,不同編譯器對語言的執行效率影響也很大。

3.C 相對於C的抽象,相較於直接用C的實現,效率如何呢?

異常:對於GCC C 用的dwarf異常比C裡面模擬實現用的longjmp時間效率要高,畢竟他記錄了哪些callee-saved 寄存器是需要恢復的,用空間換了些時間。

返回結構體對象:C 支持對於非POD執行返回拷貝優化,C99結構體由於都是POD,有的版本依然不能支持返回拷貝優化。

虛函數:這種抽象,C實際有2種實現,一種就是照搬C 的實現,顯然效率不會有太多差別;第二種是讓每個對象持有每個虛函數的函數指針,初始化慢些且對象或者虛函數多了也特別費內存,但是調用虛函數時少了一次間接定址,而且還可以運行期修改這個函數指針的值。

C 函數模版(operator

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 中軟卓越哈爾濱 的精彩文章:

中軟國際哈爾濱ETC分享:銀河系中心黑洞為什麼不活躍
中軟國際哈爾濱ETC:確保您的業務網路為物聯網做好準備

TAG:中軟卓越哈爾濱 |