編譯速度排行
1. 綜合來說,幾大主流C++編譯器(icc,gcc,clang,vc++等)究竟孰優孰劣
我曾編出各種C++ 11編譯器的支持,並有C++ 14編譯器支持一批。
實際使用

對VC編譯的速度不斷提高,內存佔用已經從VC12開始明顯提高,而最明顯的是可變參數模板。還有內置的代碼靜態分析,在實際中很有用。32位保護模式下,ss寄存器存的是一個段選擇子,選擇子是一個數字,通過IDT(局部描述符表)或者GDT(全局描述符表)選擇一個段描述符,描述符裡面的信息包含該段的取值范圍和大小。
vc14的靜態分析不在每次載入一個ie(對,以前每分析一個.cpp,就載入一次ie!),速度快了相當多。
2. 編程語言哪個速度快
編程語言Pascal和VB速度快。
學習編程的作用:
1、輔助工作。當前正外在大數據時代背景下,對於職場人來說,掌握一定的數據分析技術將是未來一個發展趨勢,而無論是採用統計學的數據分析方式還是機器學習的數據分析方式,編程都是重要的工具。目前在金融領域內,通過編程(python語言)來進行數據分析越來越流行,這就是一個比較明顯的發展信號。未來不僅是互聯網行業,更多傳統行業的企業將逐漸成為數據驅動型的企業,而這個過程必然會伴隨著知識結構的升級,編程是其中的重要內容之一。
2、輔助學習。隨著大數據技術的發展,未來的學習過程將更加智能化,更多的智能體將以教育的形式走進人們的生活中,而編程語言是與這些智能體進行交流的重要方式之一,所以掌握編程語言對於學習也是有重要意義的。
3、方便生活。隨著5G的落地應用,未來在生活場景中會有越來越多可編程的智能體,掌握編程技術可以更加方便的按照自己的需求進行各種個性化的設定,比如對智能家居產品和智能汽車產品進行編程等等。
想了解更多有關編程的詳情,推薦咨詢達內教育。達內教育獨創TTS8.0教學系統,達內OMO教學模式,全新升級,線上線下交互學習,滿足學生多樣化學習需求;同時,擁有經驗豐富的講師進行課程的講授,對標企業人才標准,制定專業學習計劃,囊括主流熱點技術,運用理論知識+學習思維+實戰操作,打造完整學習閉環;更有企業雙選會,讓學生就業更順利。
感興趣的話點擊此處,免費學習一下
3. 編程語言排行榜是怎樣的
2019年排行:Java,C,python,C++,C#,PHP。
1、Java
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。

4、C++
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。
C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
5、C#
C#是微軟公司發布的一種面向對象的、運行於.NET Framework和.NET Core(完全開源,跨平台)之上的高級程序設計語言。並定於在微軟職業開發者論壇(PDC)上登台亮相。
C#是面向對象的編程語言。它使得程序員可以快速地編寫各種基於MICROSOFT .NET平台的應用程序,MICROSOFT .NET提供了一系列的工具和服務來最大程度地開發利用計算與通訊領域。
4. C++強大的背後是什麼
C++廣泛應用在不同領域,使用者以數百萬計。根據近十年的調查,C++的流行程度約穩定排行第3位。 C++經歷長期的實踐和演化,才成為今日的樣貌。
C++因何而強大
相對運行於虛擬機語言,C/C++直接以靜態形式把源程序編譯為目標平台的機器碼。一般而言,C/C++程序在編譯及鏈接時可進行的優化最豐富,啟動時的速度最快,運行時的額外內存開銷最少。而C/C++相對動態語言也減少了運行時的動態類型檢測。此外,C/C++的運行行為是確定的,且不會有額外行為,也不會有如垃圾收集(GC)而造成的不確定性延遲,而且C/C++的數據結構在內存中的布局也是確定的。有時C++的一些功能會使程序性能優於C,當中以內聯和模版最為突出,這兩項功能使C++標准庫的sort()通常比C標准庫的qsort()快多倍(C可用宏或人手編碼去解決此問題)。另一方面,C/C++能直接映射機器碼,之間沒有另一層中間語言,因此可以做底層優化,例如使用內部(intrinsic)函數和嵌入匯編語言。然而,許多C++的性能優點並非免費午餐,代價包括較長的編譯鏈接時間和較易出錯,因而增加開發時間和成本。
學編程最重要的是實踐,就是寫代碼、看別人寫的代碼、再寫代碼,你看再多的書,不寫代碼,你還是不會編程。但是寫代碼也要講究方法循序漸進,不能剛學了幾天語法,就想寫個操作系統什麼的,樹立這種不切實際的目標只會讓你的自信受到嚴重打擊迷失自我。同時小編推薦一個學C/C++的學習群627819188無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!群內有很多干貨和技術分享!
C++源代碼跨平台
C++有不錯的跨平台能力,但由於直接映射硬體,因性能優化的關系,跨平台能力不及Java及多數腳本語言。然而,實踐跨平台的C++軟體還是可行的,但須注意以下問題:
C++標准沒有規定原始數據類型(如int)的大小,需要特定大小的類型時,可自訂類型(如int32_t),同時對任何類型使用sizeof()而不假設其大小;
位元組序(byte order)按CPU有所不同,特別要注意二進制輸入輸出、reinterpret_cast法;
原始數據和結構類型的地址對齊有差異;
編譯器提供的一些編譯器或平台專用擴充指令;
避免作應用二進制介面(application binary interface, ABI)的假設,例如調用函數時參數的取值順序在C/C++中沒定義,在C++中也不可隨便假設RTTI/虛表等實現方式。
總括而言,跨平台C++軟體可在頭文件中用宏檢測編譯器和平台,再用宏、typedef、自定平台相關實現等方法去實踐跨平台,C++標准不會提供這類幫助。
C++程序是否容易崩潰
和許多語言相比,C/C++提供不安全的功能以最優化性能,有可能造成崩潰。但要注意,很多運行時錯誤,如向空指針/引用解引用、數組越界、堆棧溢出等,其他語言也會報錯或拋出異常,這些都是程序問題,而不是語言本身的問題。有些意見認為,出現這類運行時錯誤,應該盡量寫入日誌並立即崩潰,不該讓程序繼續運行,以免造成更大的影響(例如程序繼續把內存中錯誤的數據覆寫文件)。若要容錯,可按業務把程序分割為多進程,像Chrome或使用fork()的形式。然而,C++有許多機制可以減少錯誤,例如以string代替C字元串;以vector或array(TR1)代替原始數組(有些實現可在調試模式檢測越界);使用智能指針也能減少一些原始指針的問題。另外,我最常遇到的Bug,就是沒有初始化成員變數,有時會導致崩潰,而且調試版和發行版的行為可能不同。
C++內存管理
C++同時提供在堆棧上的自動局部變數,以及從自由存儲(free store)分配的對象。對於後者,程序員需手動釋放,或使用不同的容器和智能指針。 C++程序員經常進一步優化內存,自定義內存分配策略以提升效能,例如使用對象池、自定義的單向/雙向堆棧區等。雖然C++0x還沒加入GC功能,但也可以自行編寫或使用現成庫。此外,C/C++也可以直接使用操作系統提供的內存相關功能,例如內存映射文件、共享內存等。
C++編譯速度
錯,是非常慢。我認為C++可能是實用程序語言中編譯速度最慢的。此問題涉及C++沿用C的編譯鏈接方式,又加入了復雜的類/泛型聲明和內聯機制,使編譯時間倍增。在C++對編譯方法改革之前(如mole提案),可使用以下技巧改善:第一,使用pimpl手法,因性能損耗應用於調用次數不多的類;第二,僅包含必要頭文件,並盡量使用及提供前置聲明版本的頭文件(如iosfwd);第三採用基於介面的設計,但須注意虛函數調用成本;第四,採用unity build,即把多個cpp文件結合在一個編譯單元進行編譯;第五,採用分布式生成系統如IncrediBuild。
C++缺乏的功能
雖然C++已經非常復雜,但仍缺少很多常見功能。 C++0x作出了不少改善,例如語言方面加入Lambda函數、閉包、類型推導聲明等,而庫方面則加入正則表達式、採用哈希表的unordered_set/unordered_map、引用計數智能指針shared_ptr/weak_ptr等。但最值得留意的是C++0x引入多線程的語法和庫功能,這是C++演進的一大步。然而,模組、GC、反射機制等功能雖有提案,卻未加進C++0x。
使用建議
C++的編碼自由度很高,容易編寫風格迥異的代碼,C++本身也沒有定義一些標准規范。而且,C++的源文件物理構成,較許多語言復雜。因此,除了決定特性集,每個團隊應建立一套編程規范,包括源文件格式(可使用文件模版)、花括弧風格。由於C++有對C兼容的包袱,一些功能可以使用C風格實現,但最好使用C++提供的新功能。最基本的是盡量以具名常量、內聯函數和泛型取代宏,只把宏用在條件式編譯及特殊情況。舊式的C要求局部變數聲明在作用域開端,C++則無此限制,應把變數聲明盡量置於鄰近其使用的地方,for()的循環變數聲明可置於for的括弧內。 C++中能加強類型安全的功能應盡量使用,例如避免「萬能」指針void *,而使用個別或泛型類型;用bool而非int表示布爾值;選用4種C++ cast關鍵字代替簡單的強制轉換。
C++與C
C++和C的設計哲學並不一樣,兩者取捨不同,所以不同的程序員和軟體項目會有不同選擇,難以一概而論。與C++相比,C具備編譯速度快、容易學習、顯式描述程序細節、較少更新標准(後兩者也可同時視為缺點)等優點。在語言層面上,C++包含絕大部分C語言的功能(例外之一,C++沒有C99的變長數組VLA),且提供OOP和GP的特性。但其實用C也可實現OOP思想,亦可利用宏去實現某程度的GP,只不過C++的語法能較簡潔、自動地實現OOP/GP。C++的RAII(resource acquisition is initialization,資源獲取就是初始化)特性比較獨特,C/C#/Java沒有相應功能。回顧歷史,Stroustrup開發的早期C++編譯器Cpre/Cfront是把C++源代碼翻譯為C,再用C編譯器編譯的。由此可知,C++編寫的程序,都能用等效的C程序代替,但C++在語言層面上提供了OOP/GP語法、更嚴格的類型檢查系統、大量額外的語言特性(如異常、RTTI等),並且C++標准庫也較豐富。有時候C++的語法可使程序更簡潔,如運算符重載、隱式轉換。但另一方面,C語言的API通常比C++簡潔,能較容易供其他語言程序調用。因此,一些C++庫會提供C的API封裝,同時也可供C程序調用。相反,有時候也會把C的API封裝成C++形式,以支持RAII和其他C++庫整合等。
5. linux虛擬機編譯速度
3至4秒。linux虛擬機編譯速度是3至4秒,linux虛擬機是一種免費使用和自由傳播的類UNIX操作系統,是一個基於POSIX的多用戶、多任務、支持多線程和多CPU的操作系統。
6. 動態編譯和靜態編譯哪個快
動態編譯快。動態編譯相比較靜態編譯具有速度快,節省系統資源,利於擴展的優點。使用動態編譯的執行環境一開始幾分鍾執行慢,完成大部分的編譯和再編譯後,會執行快。
7. GCC/G++,ICC,Clang,MSVC,BCC等C/C++編譯器有什麼特長和不足
clang編譯速度快,但是貌似編譯結果運行相對會慢。功能更新一般也比較快。
g++編譯速度比clang慢,編譯結果運行貌似比clang快。功能更新稍慢。
vc這幾年沒編譯過大工程,感覺上編譯速度在clang和g++之間。以過去的經驗g++和vc編譯結果運行速度差不多。功能更新上就是一坨屎。但是在Windows上寫點正經東西你可能不得不用它,相對的你也只能在Windows上用它。
icc很久沒用過,過去印象編譯速度很慢,運行速度最快但是感覺有點得不償失。最大的問題是這東西要錢,前三個都是免費的。
bcc直接無視就好了。
8. maclinux哪個快
Linux系統攻克Mac電腦,Asahi Linux Alpha版編譯比macOS快40%
原創2022年5月27日Asahi Linux 的編譯速度比 macOS 足足快了 40%。
CSDN
mac對比linux編譯速度,Mac OS X 10.5和Linux Ubuntu 8.10性能對比測試...
2021年5月1日Bonnie++磁碟性能測試:不管持續寫入還是隨機讀取,Mac都明顯好得多,而且讀寫性能基本一致;Ubuntu還是64位版稍好一些。大概和雙方使 用的文件系統...
CSDN編程社區
9. 程序的編譯速度與程序的執行速度
執行與編譯。。也有掛鉤!。。執行、編譯速度又跟硬體有關!用 WEB來說 第一次編譯比較慢!後面這次訪問就快多了!這跟緩存有關。。還有就是代碼的問題。。 多次的循環判斷也會造成系統執行變慢!。。在提升速度方面 主要就是倆種方法 1.完善的代碼 2.提高硬體了!可能我說的比較片面!別的兄弟可以繼續補充!
