編譯程序的運行效率
❶ 編譯後的程序比邊解釋邊執行的程序的運行速度快嗎為什麼
程序的編譯是指將人可以理解的代碼(如C的源代碼)段編譯成機器指令碼(二級制指令),也就是處理堆棧、處理器、匯流排的指令,交由計算機自動執行。解釋型語言是在需要執行時臨時編譯運行,執行時多了編譯的過程,自然就要慢的多了。
比較特殊的是java,javac命令編譯的結果雖然也是二進制文件,但實際也不是機器指令,而是優化後的代碼,最後的執行是通過java虛擬機再次編譯後執行。所以效率介於編譯型和解釋型之間。
目前java的執行速度已經有了大幅度的提升,但要想趕上或超越C 或者匯編,理論上是不現實的。
❷ 含有優化部分的編譯程序執行效率高,低還是不變,到底執行效率指的是什麼
這個要看你使用什麼編譯器了。查看編譯器的幫助文檔,它會告訴你它支持那些指令集,並且做哪些可能的優化。
不同的編譯器,是不一樣的。
補充:GCC 不太清楚,你連VC++的版本都不說。汗,VC6是不支持SSE的,需要安裝VC6SP5。
VS2005 和 VS2008 都支持 SSE。對 SSE/MMX 指令集優化得最好的,還是 Intel 的 c++ 編譯器。
對並行和高性能計算,Fortran 的優勢比較大。特別是 Fortran2003 的新特徵,為並行計算做了很多專門的設定。Intel 也有 Fortran 的編譯器。
❸ Java 代碼的運行效率是由Java虛擬機決定,還是由我們的PC速度決定
運行效率分兩個部分,一個是編譯的效率,一個是執行的效率。
編譯的效率是由jvm和pc兩部分影響的,編譯後的class文件的執行速度就完全由pc決定了,這個和你的代碼中是否有循環沒有直接關系,執行所耗費的時間是按照計算機計算一個二進制基礎運算的基礎來衡量的。這裡面還有class文件解釋成機器碼的時間,這個就是按語句的多少來算了,因為java是逐行逐句解釋的。所以我們說class文件的運行時間也包含了class文件解釋成機器碼的時間。
不過java運行效率再快,也沒有c代碼快,這個不是說c代碼精煉就運行快的原因。
java代碼通過jvm編譯成class文件,這時候還不能說是編譯成機器碼了,class碼呢還是一種中間碼,還需要被解釋成機器碼,這也是為什麼java是跨平台的語言的原因。而c代碼,只需要直接一次性編譯成機器碼就可以了。這也是為什麼在某種平台下寫的c代碼不能再跨平台的原因。
希望我已經解釋清楚了。
❹ 什麼語言編寫的程序執行效率最低
解釋型語言的程序執行效率最低,解釋型語言通常不會進行整體性的編譯和鏈接處理,解釋型語言相當與把編譯型語言中的編譯和解釋過程混合到了一起同時完成。每次執行解釋型語言的程序都需要進行一次編譯,因此解釋型語言的程序運行效率通常較低,而且不能脫離解釋其獨立運行。
在各類程序設計語言中,相比較而言,執行效率最高的是機器語言編寫的程序。在各種程序設計語言中,只有二進制代碼組成的機器語言才能被計算機直接執行,其他的語言都必須進行編譯,翻譯成二進制代碼才可被執行。

高級語言按程序的執行方式可以分為編譯型和解釋型兩種。
1、編譯型語言
編譯型語言是指使用專門的編譯器,針對特定平台(操作系統)將某種高級語言源代碼一次性「翻譯」成可被該平台硬體執行的機器碼(包括機器指令和操作數),並包裝成該平台所能識別的可執行程序的格式,這個轉換過程稱為編譯(Compile)。編譯生成的可執行程序可脫離開發環境,在特定的平台上獨立運行。
2、解釋型語言
解釋型語言是指使用專門的解釋器對源程序逐行解釋成特定平台的機器碼並立即執行的語言。解釋型語言可以方便地實現源程序級的移植,但這是以犧牲程序執行效率為代價的。
❺ VC++和G++編譯後的程序運行效率差距多大
VC++6.0下是如下操作的: 先把第一、二個表達式加起來存儲在m中(也可存儲在一個臨時變數a中),m=++n+ ++n=4+4=8; 第三個n增1加在m上,m=m+5=8+5=13; 第四個n增1加在m上,m=m+6=13+6=19. 不必責怪VC++6.0的編譯器。C/C++沒有具體規定表達式的演算法
❻ 腳本語言程序執行效率低嗎
與編輯語言比,相對較高。
1. 腳本語言因為不需要編譯器,省去了編譯的過程,這就極大的減少了,開發的的時間,而編程語言,因為需要編譯,所以可能需要的時間更加長一些,2. 腳本語言是一種動態語言,也就是說可以實時的更改代碼,而不需要將程序停止下來,這是一種高級特性,而Java等編程語言,是靜態的語言,一旦編譯完成並且運行,就不能更改代碼,除非將程序停止下來,但是這樣的代價是比較昂貴的。3. 腳本語言非常容易學習,但是也造成了它的不足,就是不全面,缺乏系統性,語法比較散漫,而高級編程語言,雖然相對難學,但是規則強,可以編程出,簡潔美觀的代碼,並且可讀性也相對較強。4. 一般來說腳本語言通用性較差,但是可以通過專門的應用來調整。5. 隨著技術的發展,其實腳本語言變得越來越強,和編程語言的界限也比較模糊,比如Python,可以將它視為編程語言了,因為它很強大。
❼ delphi編譯器效率高到底是指什麼
所謂delphi編譯器效率高,一般指的是以下三方面:
1、編譯連接時間短,這一點是其他任何編譯器都無法相比的(一般來說,VC, VB編譯過程所用的時間是Delphi的幾倍),原因很簡單:Pascal語法限制嚴格,用戶必須規范地編碼,省去了編譯器的很多麻煩。
2、編譯出的程序執行速度快,產生的代碼長度短。這一點比VB強,但和VC基本一樣,誰也沒有優勢。不過很多人有誤解,以為Delphi類庫龐大復雜,加一個控制項就要把整個一個源文件全部加進來,代碼長度太大,效率太差。其實真實情況是,擁有眾多VCL控制項類庫,是Delphi的一個獨特之處,VC的MFC庫無法與之相比——MFC有的底層簡單封裝的類,VCL庫都有,但VCL有的上層組件,MFC卻根本沒有。使用VCL上層應用控制項後,代碼長度的確比VC大,不過VC卻沒有這方面的選擇,而VC所用的從底層一磚一瓦地編碼的方式,Delphi完全支持,而且絕對沒任何劣勢,代碼長度也不長(VC的語法復雜,按C程序員一般習慣做的話,代碼長的反而會是VC)。產生誤解的原因,是多數Delphi程序員是應用級的,而VC程序員是底層些的,應用程序員大多不太懂得底層代碼的編寫,只會搬控制項、響應事件,以為底層的東西Delphi做不來。
3、對應用級的程序開發周期短——這也就是Borland一貫吹捧的「快速開發工具」的含義。正因為VCL的存在(封裝了很多界面組件以及通訊、資料庫、internet應用等很多後台功能),對高層應用不再需要一磚一瓦地受累,使開發周期縮短了很多倍。
單純從技術角度說,編譯器效率應該指編譯出的代碼是否短小/運行速度是否快,以及是否能用較少的源代碼高效地實現復雜功能。前一方面Delphi並不比VC差,而比VB強,但並非一騎絕塵;後一方面則的確有一騎絕塵之象。
Delphi的致命缺點,其實不是技術——技術它是領先的,毫無疑問,問題是市場策略和公司實力(Borland只是家小公司),微軟「攜操作系統以令諸侯」,誤導了眾多軟體開發公司,讓它們以為微軟的才正宗和好用,造成了事實上的VB,VC用戶群遠比Borland的龐大,源代碼數量也一樣是C/C++遠遠占優,而Borland的C++ Builder卻開發得太晚難以形成市場優勢。
概括來說,如果你要開發上層應用為主的程序,特別是資料庫方面的程序,那麼Delphi能讓你省不少時間;而若開發底層些的軟體,為能有更多相關代碼可以參考利用,為能容易地招聘到更合適的程序員,以及為了代碼維護方便,都適合用C/C++去做,當然,C++ Builder從技術上說是個不錯的選擇,只是用戶群還太小。
❽ c語言的編譯效率是最快的嗎
計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高,但也不能一概而論,部分解釋型語言的解釋器通過在運行時動態優化代碼,甚至能夠使解釋型語言的性能超過編譯型語言。解釋則不同,解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。解釋是一句一句的翻譯。編譯型與解釋型,兩者各有利弊。前者由於程序執行速度快,同等條件下對系統要求較低,因此像開發操作系統、大型應用程序、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網頁腳本、伺服器腳本及輔助開發介面這樣的對速度要求不高、對不同系統平台間的兼容性有一定要求的程序則通常使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。但隨著硬體的升級和設計思想的變革,編譯型和解釋型語言越來越籠統,主要體現在一些新興的高級語言上,而解釋型語言的自身特點也使得編譯器廠商願意花費更多成本來優化解釋器,解釋型語言性能超過編譯型語言也是必然的。
❾ 程序設計語言里哪個的執行速度快、效率高。
程序設計語言里機器語言的執行速度快、效率高。
機器語言指令是一種二進制代碼,由操作碼和操作數兩部分組成。操作碼規定了指令的操作,是指令中的關鍵字,不能預設。操作數表示該指令的操作對象。
計算機的指令格式與機器的字長、存儲器的容量及指令的功能都有很大的關系。從便於程序設計、增加基本操作並行性、提高指令功能的角度來看,指令中應包含多種信息。

(9)編譯程序的運行效率擴展閱讀:
機器語言的特點:
1、難學、難懂、難理解。
機器語言程序是由一連串指令碼構成的,這些指令碼又由16進制數組成,它和要實現的功能之間沒有任何的聯系。
2、 無通用性。
機器語言是最直接、最原始的語言,它完全依賴與某種特定的計算機系統。
3、需要認為分配內存
機器語言程序和它在運行過程中所要用到的所有參數象高級語言一樣,需要存放在主機的內存中。但具體存放在內存的什麼位置,如何合理布局,需要程序設計者根據計算機下系統和程序的具體情況來人為確定。
4、運行速度最快
機器語言是計算機能夠識別並直接產生作用的唯一語言,不需要經過編譯過程,執行速度很快,是高級語言的幾百倍。
5、功能更加完善
機器語言能夠完成的功能,高級語言不一定能夠實現;高級語言能實現的功能,機器語言也一樣能實現。
❿ 程序的編譯速度與程序的執行速度
執行與編譯。。也有掛鉤!。。執行、編譯速度又跟硬體有關!用 WEB來說 第一次編譯比較慢!後面這次訪問就快多了!這跟緩存有關。。還有就是代碼的問題。。 多次的循環判斷也會造成系統執行變慢!。。在提升速度方面 主要就是倆種方法 1.完善的代碼 2.提高硬體了!可能我說的比較片面!別的兄弟可以繼續補充!
