為什麼python執行效率低?原來因為它!
在大家的記憶中python是一門非常不錯的語言,具有很多的優勢,但python同樣具有缺點,那就是執行效率低,那麼為什麼python執行效率低呢?原因在這裡。
1. python是動態語言
動態語言是一類在執行時可以改變其結構的語言,如新的函式、物件、程式碼可以被引入,已有的函式可以被刪除或其他結構上的變化等,該類語言更具有活性,但是不可避免的因為執行時的不確定性也影響執行效率。
2. python是解釋執行
相比於C語言編譯性語言編寫的程式,Python是解釋執行語言,其執行過程是Python執行檔案程式時,Python直譯器將原始碼轉換為位元組碼,然後再由Python直譯器來執行這些位元組碼。其每次執行都要進行轉換成位元組碼,然後再有虛擬機器把位元組碼轉換成機器語言,最後才能在硬體上執行,與編譯性語言相比,其過程更復雜,效能肯定會受影響。
3. Python中一切都是物件
Python是一門物件導向的程式語言,其設計理念是一切皆是物件,如數字、字串、元組、列表、字典、函式、方法、類、模組等都是物件,包括程式碼,每個物件都需要維護引用計數,因此,增加了額外工作,影響了效能。
4. Python GIL
GIL是Python最為詬病的一點,因為GIL,Python中的多執行緒並不能真正的併發,即使在單執行緒,GIL也會帶來很大的效能影響,因為python每執行100個opcode就會嘗試執行緒的切換,因此,影響Python執行效率。
5. 垃圾回收
Python採用標記和分代的垃圾回收策略,每次垃圾回收的時候都會中斷正在執行的程式,造成所謂的頓卡,影響執行效率。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2711725/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python為什麼執行效率低?受哪些因素影響?Python
- python為什麼要用執行緒Python執行緒
- 為什麼學習效率如此低,我很迷茫?
- 程式設計師工資為什麼普遍很高,原來是因為這個...程式設計師
- 為什麼進行統計分析執行效率反而更差呢?
- 為什麼要學習Python?因為能「為所欲為」啊……Python
- python 多執行緒為什麼雞肋?Python執行緒
- python按f5為什麼不執行Python
- 為什麼Python停止執行?該如何應對?Python
- 為什麼想做副業???還不是因為窮
- ITAM是什麼?為什麼它很重要?
- 六星教育:Python為什麼這麼火?未來它將會被什麼語言取代?Python
- IT職場:工作效率低?那是因為你沒有掌握精益思想
- 為什麼redis是單執行緒的以及為什麼這麼快?Redis執行緒
- MySQL訪問行更新慢、使用者執行緒大量堆積竟是因為它MySql執行緒
- Android手機為什麼越用越卡?原來是它們搗的鬼Android
- 為什麼你寫的Python執行的那麼慢呢?Python
- 低程式碼平臺能為企業帶來什麼?
- 為什麼Podman執行容器更安全?
- 為什麼要使用執行緒池執行緒
- 什麼是 WireGuard?為什麼 Linux 使用者為它瘋狂?Linux
- Redis為什麼是單執行緒?為什麼有如此高的效能?Redis執行緒
- 為什麼?為什麼StringBuilder是執行緒不安全的?UI執行緒
- 為什麼有人說 Python 多執行緒是雞肋?Python執行緒
- 【譯】為什麼命名“它”為依賴屬性(DependencyProperty)
- 邊緣計算是什麼以及為什麼需要它
- 什麼是客戶分析,為什麼它很重要?
- 為什麼Julia比Python快?因為天生理念就更先進啊Python
- python cv2 read出錯是因為什麼?Python
- 為什麼運維要學Python?它們之間有什麼聯絡?運維Python
- 為什麼越來越多企業需要低程式碼開發
- Promise為什麼比setTimeout先執行?Promise
- ArrayList 為什麼執行緒不安全執行緒
- 為什麼對陣列排序讓Python迴圈執行更快陣列排序Python
- 執行緒池管理(1)-為什麼需要執行緒池執行緒
- redis為什麼用單執行緒不用多執行緒Redis執行緒
- 為什麼用Vite框架?來看它的核心元件案例詳解Vite框架元件
- MongoDB為什麼比mysql效率高MongoDBMySql