導航:首頁 > 源碼編譯 > 含有代碼的編譯器效率高

含有代碼的編譯器效率高

發布時間:2022-09-20 06:49:54

㈠ 含有代碼優化的編譯器的執行效率高這句話對不對

優化方式理論上跟編譯器和硬體都有關聯。代碼級別的優化,要看所使用的編譯器實現,Xcode用的是clang,VS用的是windows自己的編譯器。。。
匯編級別(指令級別)的優化,要根據硬體對應的指令集實現,指令集根據CPU類型的不同而不同。。。

㈡ Intel C++ Compiler與gcc對比有什麼優缺點

icc 是Intel公司專門為Wintel平台設計,有針對性的做了優化,缺陷也很顯然,既然有針對性,也就不具備通用性。使用icc編譯,可能會使編譯出來的程序有更好的執行效率,但也可能使其在非Intel CPU上運行異常。並且,在某些情況下,即使在Wintel平台上也會崩潰。
gcc的優勢在於其通用性,目前主流的所有平台,它基本上都支持。使用-O3優化編譯後的執行效率,也不錯。
在Win平台上,編譯後執行效率最好的,依然是微軟的vs,這可能與win系統是他們家出的有關。
使用icc帶來的優勢,並不突出,還是建議不要用了。
如果限定在win平台上開發,使用vc或gcc更合適一些。我個人推薦gcc,vc的ide環境過於龐大,不太喜歡,但win平台上主流的c開發工具還是vc,有不少開源的工程都使用它,如果你用到了這些開源代碼,就不得不用了。

㈢ 編譯型語言和解釋型語言各自的優缺點是什麼

一、編譯型語言

優點:運行速度快,代碼效率高,編譯後的程序不可修改,保密性較好。

缺點:代碼需要經過編譯方可運行,可移植性差,只能在兼容的操作系統上運行 。

二、解釋型語言

優點:可移植性較好,只要有解釋環境,可在不同的操作系統上運行。

缺點:運行需要解釋環境,運行起來比編譯的要慢,佔用資源也要多一些,代碼效率低,代碼修改後就可運行,不需要編譯過程。

(3)含有代碼的編譯器效率高擴展閱讀:

編譯型語言:程序在執行之前需要一個專門的編譯過程,把程序編譯成 為機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結果就行了。程序執行效率高,依賴編譯器,跨平台性差些。如C、C++、Delphi等。而相對的,解釋性語言編寫的程序不進行預先編譯,以文本方式存儲程序代碼。在發布程序時,看起來省了道編譯工序。但是在運行程序的時候,解釋性語言必須先解釋再運行。

㈣ 關於匯編和c語言效率哪個高

這個不一定,取決於編程人員的水平,
實現相同功能:
一般來說,如果牛人來寫匯編和C語言,肯定匯編性能高。

但如果一般開發人員寫匯編和C語言,就不一定了,
因為現代編譯器有大量的優化手段(超牛人寫的,比如寄存器優化,亂序優化,位元組對齊優化等等,很多優化技術一般開發人員是不了解的),這些優化手段最終得到的效果,可能比一般人直接用匯編寫的性能更高。

㈤ c語言效率問題

匯編語言的效率確實比C語言高,但匯編語言調試過程較為困難,代碼容易遺留缺陷,而且難以維護。其實編譯器已經把你這個想法幹掉了,C編譯器會把C代碼轉換成匯編代碼,再翻譯成機器指令。如果想獲得較高的效率,可在編譯前,將編譯器的優化選項打開,如此即可獲得較高效率的代碼。如果這樣得到的代碼還是不能滿足要求,那麼合適的做法是識別程序中對效率要求最高的一小部分,將這小部分代碼用匯編實現,並將代碼嵌入到C程序中。

㈥ 推薦幾個C++的編譯器

visual c++ 功能強大,不過需要的容量也很大 ,
TC2.0也不錯 很適合初學者 不過不是很標准 下面有它們的下載網站 你自己根據自己的情況,自己選擇吧,我的建議是VC6.0

TC2.0的:
http://218.64.170.103/dload1.html?cid=

http://218.64.170.103/dload1.html?cid=

VC6.0 的:
http://218.64.170.103/dload1.html?cid=

http://218.64.170.103/dload1.html?cid=

㈦ 同樣需要編譯器為什麼匯編語言比較快

絕大多數情況下,並不是。

事實上除了對CPU工作模式極端熟悉的人,一般人是很難用匯編寫出更高效的代碼的。
編譯器雖然智商比不了人,但是它更精通優化。生成高效的代碼需要透徹地掌握硬體的工作模式,每個細節都要考慮清楚。而且這很大程度上是軟體更擅長但人並不擅長的繁重無腦又要求極高精確性的機械化工作。

當然專業搞優化的人還是能打敗編譯器的,因為編譯器能做到的人終究還是可以做到。而人要比編譯器聰明得多。編譯器只能遵循一些規定好的模式進行優化,人可以創造編譯器根本不知道的優化方法。某些邏輯靠編譯器是沒辦法生成出來的,只能由人直接用匯編寫。匯編語言雖然也要編譯,但是一般會和機器指令直接對應,相當於要求CPU在細節上嚴格按人的思路工作,而高級語言並不能控制太多細節。

㈧ 含優化部分的編譯程序執行效率高 對嗎

不能說一定高,優化一個最主要目的是解決程序佔用存儲空間大。

㈨ 如何編寫代碼才能使效率提高

一、排版:
1.關鍵詞和操作符之間加適當的空格。
2.相對獨立的程序塊與塊之間加空行
3.較長的語句、表達式等要分成多行書寫。
4.劃分出的新行要進行適應的縮進,使排版整齊,語句可讀。
5.長表達式要在低優先順序操作符處劃分新行,操作符放在新行之首。
6.循環、判斷等語句中若有較長的表達式或語句,則要進行適應的劃分。
7.若函數或過程中的參數較長,則要進行適當的劃分。
8.不允許把多個短語句寫在一行中,即一行只寫一條語句。
9.函數或過程的開始、結構的定義及循環、判斷等語句中的代碼都要採用縮進風格。
10.C/C++語言是用大括弧『{』和『}』界定一段程序塊的,編寫程序塊時『{』和
『}』應各獨佔一行並且位於同一列,同時與引用它們的語句左對齊。在函數體
的開始、類的定義、結構的定義、枚舉的定義以及if、for、do、while、
switch、case語句中的程序都要採用如上的縮進方式。
二、注釋
1.注釋要簡單明了。
2.邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性。
3.在必要的地方注釋,注釋量要適中。注釋的內容要清楚、明了,含義准確,防止
注釋二義性。保持注釋與其描述的代碼相鄰,即注釋的就近原則。
4.對代碼的注釋應放在其上方相鄰位置,不可放在下面。
5.對數據結構的注釋應放在其上方相鄰位置,不可放在下面;對結構中的每個域
的注釋應放在此域的右方;同一結構中不同域的注釋要對齊。
6.變數、常量的注釋應放在其上方相鄰位置或右方。
7.全局變數要有較詳細的注釋,包括對其功能、取值范圍、哪些函數或過程存取它
以及存取時注意事項等的說明。
8.在每個源文件的頭部要有必要的注釋信息,包括:文件名;版本號;作者;生成
日期;模塊功能描述(如功能、主要演算法、內部各部分之間的關系、該文件與其
它文件關系等);主要函數或過程清單及本文件歷史修改記錄等。
9.在每個函數或過程的前面要有必要的注釋信息,包括:函數或過程名稱;功能描
述;輸入、輸出及返回值說明;調用關系及被調用關系說明等。
三、命名
1.較短的單詞可通過去掉「母音」形成縮寫;
2.較長的單詞可取單詞的頭幾發符的優先順序,並用括弧明確表達式的操作順序,避
免使用默認優先順序。
3.使用匈牙利表示法
四、可讀性
1.避免使用不易理解的數字,用有意義的標識來替代。
2.不要使用難懂的技巧性很高的語句。
3.源程序中關系較為緊密的代碼應盡可能相鄰。
五、變數
1.去掉沒必要的公共變數。
2.構造僅有一個模塊或函數可以修改、創建,而其餘有關模塊或函數只訪問的公共
變數,防止多個不同模塊或函數都可以修改、創建同一公共變數的現象。
3.仔細定義並明確公共變數的含義、作用、取值范圍及公共變數間的關系。
4.明確公共變數與操作此公共變數的函數或過程的關系,如訪問、修改及創建等。
5.當向公共變數傳遞數據時,要十分小心,防止賦與不合理的值或越界等現象發生。
6.防止局部變數與公共變數同名。
7.仔細設計結構中元素的布局與排列順序,使結構容易理解、節省佔用空間,並減
少引起誤用現象。
8.結構的設計要盡量考慮向前兼容和以後的版本升級,並為某些未來可能的應用保
留餘地(如預留一些空間等)。
9.留心具體語言及編譯器處理不同數據類型的原則及有關細節。
10.嚴禁使用未經初始化的變數。聲明變數的同時對變數進行初始化。
11.編程時,要注意數據類型的強制轉換。
六、函數、過程
1.函數的規模盡量限制在200行以內。
2.一個函數最好僅完成一件功能。
3.為簡單功能編寫函數。
4.函數的功能應該是可以預測的,也就是只要輸入數據相同就應產生同樣的輸出。
5.盡量不要編寫依賴於其他函數內部實現的函數。
6.避免設計多參數函數,不使用的參數從介面中去掉。
7.用注釋詳細說明每個參數的作用、取值范圍及參數間的關系。
8.檢查函數所有參數輸入的有效性。
9.檢查函數所有非參數輸入的有效性,如數據文件、公共變數等。
10.函數名應准確描述函數的功能。
11.避免使用無意義或含義不清的動詞為函數命名
12.函數的返回值要清楚、明了,讓使用者不容易忽視錯誤情況。
13/明確函數功能,精確(而不是近似)地實現函數設計。
14.減少函數本身或函數間的遞歸調用。
15.編寫可重入函數時,若使用全局變數,則應通過關中斷、信號量(即P、V操作)
等手段對其加以保護。
七、可測性
1.在編寫代碼之前,應預先設計好程序調試與測試的方法和手段,並設計好各種調
測開關及相應測試代碼如列印函數等。
2.在進行集成測試/系統聯調之前,要構造好測試環境、測試項目及測試用例,同時
仔細分析並優化測試用例,以提高測試效率。
八、程序效率
1.編程時要經常注意代碼的效率。
2.在保證軟體系統的正確性、穩定性、可讀性及可測性的前提下,提高代碼效率。
3.不能一味地追求代碼效率,而對軟體的正確性、穩定性、可讀性及可測性造成影
響。
4.編程時,要隨時留心代碼效率;優化代碼時,要考慮周全。
5.要仔細地構造或直接用匯編編寫調用頻繁或性能要求極高的函數。
6.通過對系統數據結構劃分與組織的改進,以及對程序演算法的優化來提高空間效率。
7.在多重循環中,應將最忙的循環放在最內層。
8.盡量減少循環嵌套層次。
9.避免循環體內含判斷語句,應將循環語句置於判斷語句的代碼塊之中。
10.盡量用乘法或其它方法代替除法,特別是浮點運算中的除法。
九、質量保證
1.在軟體設計過程中構築軟體質量。
代碼質量保證優先原則
(1)正確性,指程序要實現設計要求的功能。
(2)穩定性、安全性,指程序穩定、可靠、安全。
(3)可測試性,指程序要具有良好的可測試性。
(4)規范/可讀性,指程序書寫風格、命名規則等要符合規范。
(5)全局效率,指軟體系統的整體效率。
(6)局部效率,指某個模塊/子模塊/函數的本身效率。
(7)個人表達方式/個人方便性,指個人編程習慣。
2.只引用屬於自己的存貯空間。
3.防止引用已經釋放的內存空間。
4.過程/函數中分配的內存,在過程/函數退出之前要釋放。
5.過程/函數中申請的(為打開文件而使用的)文件句柄,在過程/函數退出前要關閉。
6.防止內存操作越界。
7.時刻注意表達式是否會上溢、下溢。
8.認真處理程序所能遇到的各種出錯情況。
9.系統運行之初,要初始化有關變數及運行環境,防止未經初始化的變數被引用。
10.系統運行之初,要對載入到系統中的數據進行一致性檢查。
11.嚴禁隨意更改其它模塊或系統的有關設置和配置。
12.不能隨意改變與其它模塊的介面。
13.充分了解系統的介面之後,再使用系統提供的功能。
14.要時刻注意易混淆的操作符。當編完程序後,應從頭至尾檢查一遍這些操作符。
15.不使用與硬體或操作系統關系很大的語句,而使用建議的標准語句。
16.建議:使用第三方提供的軟體開發工具包或控制項時,要注意以下幾點:
(1)充分了解應用介面、使用環境及使用時注意事項。
(2)不能過分相信其正確性。
(3)除非必要,不要使用不熟悉的第三方工具包與控制項。
十、代碼編譯
1.編寫代碼時要注意隨時保存,並定期備份,防止由於斷電、硬碟損壞等原因造成
代碼丟失。
2.同一項目組內,最好使用相同的編輯器,並使用相同的設置選項。
3.合理地設計軟體系統目錄,方便開發人員使用。
4.打開編譯器的所有告警開關對程序進行編譯。
5.在同一項目組或產品組中,要統一編譯開關選項。
6.使用工具軟體(如Visual SourceSafe)對代碼版本進行維護。
十一、代碼測試、維護
1.單元測試要求至少達到語句覆蓋。
2.單元測試開始要跟蹤每一條語句,並觀察數據流及變數的變化。
3.清理、整理或優化後的代碼要經過審查及測試。
4.代碼版本升級要經過嚴格測試。

㈩ 高級語言和匯編語言最後都轉化為機器指令,那麼為什麼說匯編代碼運行效率高

樓上的那段匯編如果去掉棧段將會更短些^^我也說兩句吧,概括型~~
高級語言必須在操作系統環境下編譯運行,通常會調用操作系統提供的庫,比如WINDOWS環境下通常會調用GDI,而匯編代碼是機器指令的助記符,機器指令可不需要操作系統環境直接基於硬體運行,,想想硬碟的0磁頭0柱面1扇區的主引導記錄吧~~ 還有一點就是人是非常智能的,用匯編編程時會根據數據大小分配合適的存儲單位,合理利用內存空間,而用高級語言編程,以VISUAL BASIC為例,不必考慮數據是一個位元組或是一個字或是一個雙字,編譯器編譯有時統一以雙字為單位分配,就大大的浪費了內存空間,而且用匯編編程常求精簡,而高級語言編譯器由於沒有人類智能,對於同樣一個目標可能會繞些彎子~這樣一來,同樣功能的程序用高級語言編譯生成的要比直接用匯編生成的要長多啦,有時甚至幾倍!所以說匯編代碼效率要高。
但是現在之所以高級語言非常通用,是因為大型的程序如果用匯編去實現是非常龐大的工程,而調用已總結的庫文件則輕松的多,C語言編譯器就提供了相當大的庫函數方便編程者調用,就好像別人已經為你燒制好磚頭,你只要蓋房子就好。

閱讀全文

與含有代碼的編譯器效率高相關的資料

熱點內容
鴻蒙20怎麼弄大文件夾 瀏覽:613
美團的伺服器是什麼 瀏覽:357
axure原型設計精髓pdf 瀏覽:376
svox文件夾有用嗎 瀏覽:506
怎樣才可以給軟體添加密鑰 瀏覽:587
光纖通信原理pdf 瀏覽:207
c需要用什麼編譯器 瀏覽:702
python設置斷點調試 瀏覽:313
pc手柄怎麼連接安卓 瀏覽:33
dll解壓不成功 瀏覽:344
連接地址伺服器失敗是什麼 瀏覽:399
台達dvp14ss2編程電纜 瀏覽:133
單片機開發板設置技巧 瀏覽:343
阿里雲伺服器怎麼配置git 瀏覽:414
androidcameraid 瀏覽:430
活塞式空氣壓縮機原理 瀏覽:791
vt編輯編制編譯 瀏覽:807
抖音優質創作者推薦程序員 瀏覽:75
攝像機多控神器讓拍攝輕松解壓 瀏覽:422
杭州的伺服器地址 瀏覽:277