日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Zapcc:一个更快的C++编译器

發布時間:2025/7/25 c/c++ 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zapcc:一个更快的C++编译器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

from:?http://geek.csdn.net/news/detail/126456

原文:zapcc - a faster C++ compiler?
作者:Baptiste Wicht?翻譯:賴信濤?責編:仲培藝

我剛剛加入了一個Zapcc的beta項目,它基于Clang,致力于做到比其他C++編譯器更快。為了做到這一點,采取的方法是將一些編譯器的結構緩存在服務器上,可以大幅度提高編譯速度。目前的beta版本是免費的,但等發布就緒之后,將會是一個商業編譯器。

每一個C++程序員都知道,當項目變得龐大之后,編譯時間將會成為一個很大的問題,尤其是一些template-heavy的代碼。

為了評測這款新的編譯器,我將用我自己的Expression Template Library?(ETL)。這是一個帶有很多templates的header-only的庫,里面包含很多需要編譯的test case。我將拿他來和Clang=3.7和gcc-4.9.3作比較。

測試環境中,我讓zapcc使用2Go RAM,每次測試之前關閉服務器一次。

Debug build

讓我們先從debug build開始。在這個build中,優化被關閉,一些庫的feature(GPU,BLAS等)被禁用。這是編譯ETL的最快方式。測試環境是四核八線程英特爾處理器,SSD硬盤。

下面這個表格顯示了在不同的線程數量下,Zapcc和其他編譯器的表現。

結果非常明顯:Zapcc幾乎是Clang速度的三倍,GCC速度的兩倍。很了不起!

這里,要提醒那些以為Clang總是會比GCC快的人,記住在這樣template-heavy的代碼的情況下并非如此。在我的測試中,Clang幾乎總是比GCC慢,吃更多的內存。

還有一點,在我的這臺電腦上,可以看出物理核心的增加導致的編譯速度增加并不是很明顯,所以基準很重要。

Release Build

現在,讓我們來比較一下release build的編譯速度。這種情況下開啟了所有的ETL選項,所以耗時也自然會更多一些。

結果如下表:

這次我們發現,差距小了很多。Zapcc比Clang快1.2-1.4倍,比GCC快1.1-1.3倍。這證明了Zapcc大部分的速度提升都是前端方面的。雖然并不是很多,但是對于很多時間長的build來說也很有意義,特別是在擁有的線程數量不多的時候。

從上表中也可以看出,Clang幾乎和GCC速度相當,我們也可以推測出,優化方面Clang速度更快,前端和后端GCC更快。

因為緩存,Zapcc的內存消耗比Clang更高,而且在匯編時,服務器依然是運行的。

至于運行時,我并沒有看到Clang版本和Zapcc版本有更多不同。根據官方的標準和文檔,Zapcc是基于Clang的,所以它們運行時性能不會有很大差別。

Incremental build

理論上講,Zapcc在Incremental build方面應該會有很大的性能提升,但是這這里不關閉服務器的情況下,并沒有看到很大的性能提升。也許我的配置有誤吧。

結論

在上面的測評中,我們可以看到在我的template-heavy庫中Zapcc總是比GCC和Clang快。而且在debug build中,它的性能提升非常突出,幾乎是GCC速度的兩倍,Clang速度的3倍。到現在為止,我并沒有看見這個工具出現任何問題,它完全可以替代Clang。

不過不能給Zapcc分配2G以上的內存,有點奇怪。

作為一個程序來說,它很給力,希望能繼續加油,為編譯器的優化帶來更多動力。

官方網站:zapcc

總結

以上是生活随笔為你收集整理的Zapcc:一个更快的C++编译器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。