編譯效率
1. 為什麼編譯執行比解釋執行更有效率
編譯執行是再編譯之前先做解釋,然後存儲為機器代碼.而解釋執行是一邊解釋語句,再編譯成機器代碼執行.
你想想再相同的時間內哪個執行的快嘛^
2. 什麼語言編寫的程序執行效率最低
解釋型語言的程序執行效率最低,解釋型語言通常不會進行整體性的編譯和鏈接處理,解釋型語言相當與把編譯型語言中的編譯和解釋過程混合到了一起同時完成。每次執行解釋型語言的程序都需要進行一次編譯,因此解釋型語言的程序運行效率通常較低,而且不能脫離解釋其獨立運行。
在各類程序設計語言中,相比較而言,執行效率最高的是機器語言編寫的程序。在各種程序設計語言中,只有二進制代碼組成的機器語言才能被計算機直接執行,其他的語言都必須進行編譯,翻譯成二進制代碼才可被執行。
高級語言按程序的執行方式可以分為編譯型和解釋型兩種。
1、編譯型語言
編譯型語言是指使用專門的編譯器,針對特定平台(操作系統)將某種高級語言源代碼一次性「翻譯」成可被該平台硬體執行的機器碼(包括機器指令和操作數),並包裝成該平台所能識別的可執行程序的格式,這個轉換過程稱為編譯(Compile)。編譯生成的可執行程序可脫離開發環境,在特定的平台上獨立運行。
2、解釋型語言
解釋型語言是指使用專門的解釋器對源程序逐行解釋成特定平台的機器碼並立即執行的語言。解釋型語言可以方便地實現源程序級的移植,但這是以犧牲程序執行效率為代價的。
3. c語言的編譯效率是最快的嗎
計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高,但也不能一概而論,部分解釋型語言的解釋器通過在運行時動態優化代碼,甚至能夠使解釋型語言的性能超過編譯型語言。解釋則不同,解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。解釋是一句一句的翻譯。編譯型與解釋型,兩者各有利弊。前者由於程序執行速度快,同等條件下對系統要求較低,因此像開發操作系統、大型應用程序、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網頁腳本、伺服器腳本及輔助開發介面這樣的對速度要求不高、對不同系統平台間的兼容性有一定要求的程序則通常使用解釋性語言,如java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。但隨著硬體的升級和設計思想的變革,編譯型和解釋型語言越來越籠統,主要體現在一些新興的高級語言上,而解釋型語言的自身特點也使得編譯器廠商願意花費更多成本來優化解釋器,解釋型語言性能超過編譯型語言也是必然的。
4. 復合運算符為什麼可以提高編譯效率
x=x+1 執行效率最低,其執行過程如下:
1)讀取右X地址
2)X+1
3)讀取左x地址
4)將右值傳給左邊的x
X+=1其次,執行過程如下:
1)讀取右x地址
2)X+1
3)將得到的值傳給X
X++效率最高,執行過程如下:
1)讀取右X地址
2)X自增1
5. 編譯器的效率
不同的編譯環境對庫函數的實現可能會有不同,但差別不會太大。況且每個編譯器都是在不停更新的,它們都會努力把實現方法改善到最佳,因此現在成熟的編譯器的庫函數的實現方法基本上都已經是那個相同的「最佳方法」了。
6. 程序的編譯速度與程序的執行速度
執行與編譯。。也有掛鉤!。。執行、編譯速度又跟硬體有關!用 WEB來說 第一次編譯比較慢!後面這次訪問就快多了!這跟緩存有關。。還有就是代碼的問題。。 多次的循環判斷也會造成系統執行變慢!。。在提升速度方面 主要就是倆種方法 1.完善的代碼 2.提高硬體了!可能我說的比較片面!別的兄弟可以繼續補充!
7. 含有優化部分的編譯程序執行效率高,低還是不變,到底執行效率指的是什麼
這個要看你使用什麼編譯器了。查看編譯器的幫助文檔,它會告訴你它支持那些指令集,並且做哪些可能的優化。
不同的編譯器,是不一樣的。
補充:GCC 不太清楚,你連VC++的版本都不說。汗,VC6是不支持SSE的,需要安裝VC6SP5。
VS2005 和 VS2008 都支持 SSE。對 SSE/MMX 指令集優化得最好的,還是 Intel 的 c++ 編譯器。
對並行和高性能計算,Fortran 的優勢比較大。特別是 Fortran2003 的新特徵,為並行計算做了很多專門的設定。Intel 也有 Fortran 的編譯器。
8. 什麼叫解釋執行、什麼叫編譯執行、哪個能快一點啊
解釋執行是計算機語言的一種執行方式。由解釋器現場解釋執行,不生成目標程序。如BASIC便是解釋執行(VB6之前的版本,還有批處理BAT文件也是),一般解釋執行效率較低,低於編譯執行。
編譯執行是一種計算機語言的執行方式。由編譯程序將目標代碼一次性編譯成目標程序,再由機器運行目標程序。如:PASCAL,C,C++,delphi等語言。效率高於解釋執行。
9. 編譯後的程序比邊解釋邊執行的程序的運行速度快嗎為什麼
程序的編譯是指將人可以理解的代碼(如C的源代碼)段編譯成機器指令碼(二級制指令),也就是處理堆棧、處理器、匯流排的指令,交由計算機自動執行。解釋型語言是在需要執行時臨時編譯運行,執行時多了編譯的過程,自然就要慢的多了。
比較特殊的是java,javac命令編譯的結果雖然也是二進制文件,但實際也不是機器指令,而是優化後的代碼,最後的執行是通過java虛擬機再次編譯後執行。所以效率介於編譯型和解釋型之間。
目前java的執行速度已經有了大幅度的提升,但要想趕上或超越C 或者匯編,理論上是不現實的。
10. 編程語言越高級,程序的編譯效率越低,是真的嗎
額,編程語言高級人使用的更方便,但是在編譯的時候就更復雜,所以效率會下降。但是高質量高效率的軟體是由高級語言編寫的,因為程序編譯成功後不需要再編譯了。高級語言寫的軟體一樣可以擁有非常高的效率。如果用匯編寫一個大型程序,不僅編程復雜,而且很多功能無法實現。