目錄
Python 比 C 慢,因為它是一種解釋語言。
幾乎總是使用虛擬機器來運行 Python 程式碼
範例
編譯過程
本機程式碼
為什麼Python比C慢?
結論
首頁 後端開發 Python教學 為什麼C程式碼比Python的運行速度更快?

為什麼C程式碼比Python的運行速度更快?

Sep 11, 2023 pm 12:45 PM
python 運行速度 c程式碼

為什麼C程式碼比Python的運行速度更快?

在本文中,我們將了解為什麼 C 語言程式碼運行速度比 Python 更快。

Guido Van Rossum 開發了 Python,這是最有名的程式語言之一。 Python因其清晰的語法和簡單的程式碼而受到開發人員的歡迎,即使對於新手來說也是如此。學習Python對於那些剛開始程式設計職業生涯的人來說是非常有利的。他們可以使用 Python 程式設計培訓、部落格、影片、模組和數千種其他資源來了解這種流行語言的各個方面。完成後,您將能夠進行現代開發活動,例如 GUI 開發、網頁設計、系統管理、複雜的金融交易或計算、數據科學、視覺化等等。

Python 比 C 慢,因為它是一種解釋語言。

Python 比 C 慢,因為它是一種解釋性語言。

因此,需要更多真實的 CPU 指令來執行給定的語句。

您可以透過在 Python 程式碼中加入數字 1 或將其與給定值進行比較來驗證變數的值是否小於、大於或精確等於該值。

不同之處在於,Python 程式碼不會立即由 CPU 執行,而是會被解釋。

就性能而言,這使世界變得與眾不同。

幾乎總是使用虛擬機器來運行 Python 程式碼

虛擬電腦的另一個名稱是「字節碼解釋器」。

解釋程式碼總是比實際機器碼慢,因為它需要比執行實際機器指令更多的指令來實作指令。

範例

考慮表達式 x = 1。在 Intel CPU 中,暫存器增量是單一操作,延遲為 1,吞吐量倒數為三分之一 (1/3)。

換句話說,它指的是英特爾處理器可以提供的最快的CPU指令。

在Python中,x = 1是如何實現的?

要理解這一點,您必須先了解 Python 內部是如何運作的。

Python 的內部元件包括分詞器、詞法分析器、字節碼產生器和字節碼解釋器 -

  • Tokenizer - 它根據給定的 ASCII 文字檔案(Python 程式碼)建立令牌流。

  • 詞法分析器 - Python 的這個區域涉及適當的縮排和間距。此時進行語法檢查。

  • 字節碼產生器 - 如果進行了任何最佳化,則它們是由Python 元件進行的;但是,由於Python 不是編譯語言,因此與C 編譯器相比,可用優化的範圍受到限制。

  • 被稱為「字節碼解釋器」的 Python 模組管理字節碼流並為 Python 虛擬機器提供動力(維護其狀態)。

字節碼一旦生成,通常會快取在記憶體中。

因為您不必對 Python 已經見過的程式碼重複標記化、詞法分析和字節碼產生過程,所以這提高了速度。

因此,我們不必每次循環 while 循環時都經歷標記化、詞法分析和字節碼創建過程,而是可以繼續將字節碼傳遞給字節碼解釋器。

這不是更快嗎? 不,實際上並非如此。

雖然使用快取的字節碼速度更快,但它的執行或操作速度不如機器碼。

運行程式碼的真實CPU不是虛擬電腦。

編譯過程

編譯型 UCSD Pascal 與當時的其他編譯語言不同,並未編譯為組合語言。相反,它被編譯成 p 程式碼。

因此,當您想到「編譯的 Pascal 程式」時,您會想到 p-Code。如果您喜歡 Java 或 Python 並且想假裝您想出了一些新東西,請使用「字節碼」。

此外,Python 還包括「編譯的Python」的概念,它指的是經過分詞器、詞法分析器和字節碼產生器處理以創建可提供給字節碼解釋器的快取字節碼的Python 程式碼(又稱Python 虛擬機器)。

當您看到擴展名為.py的檔案時,它是一個包含Python原始碼的ASCII文字檔案。

PYthon,已編譯是帶有「.pyc」副檔名的檔案所代表的內容。

仍然,虛擬計算機執行已建立的程式碼。

本機程式碼

程式一旦建置完成,就不會完全轉換為本機程式碼,直到它被轉換為其設計平台的本機二進位 CPU 指令。

這通常涉及編寫彙編程式碼,將其傳遞給彙編器,然後讓彙編器建立特定於平台的目標文件,而不是使用字節碼。

在程式連接到平台運行時之前,它尚未準備好使用。運行時可以提供動態物件載入等運行時服務並建置程式碼執行的環境。在已編譯的 C 中,存在運行時。已編譯的C 具有運行時。

為什麼Python比C慢?

  • Python 執行大量的健全性檢查- 整數永遠不會溢出,無效記憶體永遠不會被訪問,類型永遠不會(默默地)不正確,並且數組永遠不會超出其末端進行寫入或讀取。在 Python 中,很難出現“非本地錯誤”,但在 C 中,出現並非實際報告錯誤的錯誤是相當常見的。

  • Python 的編譯器不會進行非常高級的最佳化(如果有的話) - 一方面,速度不像C 中那麼重要,而且沒有那麼多資訊可以繼續- 例如,在Common Lisp(另像Python 一樣的動態語言)中,您可以提供類型註釋以獲得與C 相同的速度- 如果您選擇退出安全檢查並承諾某些變數將具有某些類型,您將獲得完全相同的機器碼指令(如果你的程式中有錯誤,也會出現完全相同的奇怪行為)。

結論

在本文中,我們了解了 C 語言程式碼執行速度比 Python 更快的不同原因。

以上是為什麼C程式碼比Python的運行速度更快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

vscode怎麼在終端運行程序 vscode怎麼在終端運行程序 Apr 15, 2025 pm 06:42 PM

在 VS Code 中,可以通過以下步驟在終端運行程序:準備代碼和打開集成終端確保代碼目錄與終端工作目錄一致根據編程語言選擇運行命令(如 Python 的 python your_file_name.py)檢查是否成功運行並解決錯誤利用調試器提升調試效率

vscode 擴展是否是惡意的 vscode 擴展是否是惡意的 Apr 15, 2025 pm 07:57 PM

VS Code 擴展存在惡意風險,例如隱藏惡意代碼、利用漏洞、偽裝成合法擴展。識別惡意擴展的方法包括:檢查發布者、閱讀評論、檢查代碼、謹慎安裝。安全措施還包括:安全意識、良好習慣、定期更新和殺毒軟件。

See all articles