假設我用 Python 和 C 撰寫了一個程式,并將它們轉換為可執行檔案。現在,兩個可執行檔案的速度會相同還是會有所不同(我想這不應該因為它現在應該采用機器代碼形式)?
uj5u.com熱心網友回復:
假設我用 Python 和 C 撰寫了一個程式,并將它們轉換為可執行檔案。現在,兩個可執行檔案的速度是否相同
當然通常不會(假設兩個代碼實作相同的演算法)。并且運行時速度取決于很多編譯器本身(例如tinycc-for C- 和GCC或Clang ....),甚至它的版本和編譯標志(例如-Osvs -O2with g )。順便說一句,Python 被編譯成一些位元組碼,而不是機器碼。
當然,有些軟體主要在其他地方花費 CPU 時間(例如在一些關系資料庫管理器中,如PostGreSQL)。然后用 C 而不是 Python 重寫它們不會獲得很多性能。并且一些軟體大多是 IO 系結的(例如tar(1)使用時沒有壓縮)
最后,一些 C 程式可以使用部分評估技術在運行時生成機器代碼(例如使用AsmJit ...),這可能會帶來巨大的加速。
在 Linux 上,您可以在運行時生成一些 C 或 C 代碼,將其編譯為臨時插件,然后dlopen(3)該臨時插件(使用dlsym(3)獲取新的函式指標...使manydl.c示例適應您的需要)
此外,C 是一種非常難學的語言。閱讀一些關于它的好書。
當然讀龍書。
因為回答你的問題需要一整本書!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/333528.html
標籤:表现
