編程語言性能實測,Go 比 Python 更勝一籌?

編程語言性能實測,Go 比 Python 更勝一籌?

作者 | Pawel Dziubałka, Sebastian Karasiewicz

譯者 | 泓技

出品 | AI科技大本營(ID:rgznai100)

互聯網上有非常多的精彩代碼,它們成了構建各種基礎設施的基礎。你正在閱讀的這個平臺同樣也在致力於創建出色的代碼。儘管普通用戶一般不會注意到這一點,但另一方面,優秀的開發人員始終在尋求使他們的應用程序(以及他們的代碼)有更好的方法。

編寫出色代碼的基礎取決於開發人員的技能及其選擇的語言。這不可避免地導致開發人員之間的衝突,而衝突不僅關乎技能水平,而且主要關乎他們偏愛的語言(甚至有可能發生史詩般衝突)。當你將兩種出色的編程語言(例如Golang(Go)和Python)放在一起時,最有可能出現這種情況。

現在讓我們退後一步,消除個人偏見和偏好,單純地從優點和功能的角度評估這兩種語言,熟練地平整好比賽場地。現在,我們剩下的只有兩個不錯的選擇:Go vs Python。現在的問題變成,哪個編程語言更適合你?

编程语言性能实测,Go 比 Python 更胜一筹?

Python的故事

如果去詢問一些開發人員,你會聽到Python誕生之前的都不值一提,而Python之後的也都不值一提之類的話。多年來,由於它是一種非常好的編程語言,已成功贏得了龐大關注。互聯網上充滿了使用Python創建的酷炫應用。

就編程年限而言,Python算是元老。它於1991年首次被概念化。隨著年齡的增長,逐漸具備了一定的優勢。它擁有廣泛的支持者,這意味著它是穩定的,並且文檔豐富。在大多數情況下,你會找到幾乎所有內容的庫以及幾乎所有可以想到的任何代碼示例。對於開發人員和企業而言,這意味著使用Python的選擇會帶來豐富的經驗和編碼。

有很多使用Python作為基礎的開源項目,因此在大多數情況下,你不是從頭開始的。它很好地集成到企業應用程序中,並且可以在機器語言和AI應用程序中使用。但是它確實有缺點,一方面,它對於內存密集型任務不是理想的選擇,對於執行而言有點慢,另一方面,它不適合移動應用程序開發。

编程语言性能实测,Go 比 Python 更胜一筹?

說到Golang(Go)

Google於2009年開發了Go語言。Go的初衷是解決實際問題。它的目標是創建一種語言,以消除C++等語言中發現的所有負擔和多餘的東西,這給它帶來了性能和速度上的提升。另外,大多數第一次接觸Go的開發人員不會體會到語法的高門檻,因為Go裡面熟悉的元素和易用性會令人驚喜。

這並不是說該語言在所有情況下都是完美的。儘管將速度和優雅提升到了一個新的高度,但它確實留下了一些需要改進的地方。首先,它沒有擴展庫,也不支持繼承。此外,沒有GUI庫或面向對象的編程支持。它要做的就是創建一個輕量級線程(Goroutines),智能標準庫,強大的內置安全性,並且易於使用最少的語法進行編碼。

编程语言性能实测,Go 比 Python 更胜一筹?

性能測試

我們可以無休止地談論Golang或Python的優缺點,但是當我們考慮部署使用時,我們都期待它們能有卓越性能。因此,我們在Intel®Core™i7–9700KCPU @ 3.60GHz × 8核的測試設備上進行了一些測試。測試代碼可以從這裡獲得https://github.com/sekarasiewicz/go-python-benchmark。

1.二分搜索

我們創建了一個整數列表(從1到100000),然後使用二分搜索查找始終相同的數字729。結果是:

编程语言性能实测,Go 比 Python 更胜一筹?

2.冒泡排序

再次,我們生成了一個整數列表(這次是隨機的,共10000個元素),並使用冒泡排序算法對其進行了排序。

编程语言性能实测,Go 比 Python 更胜一筹?

3.文件讀取

讀取“ lorem ipsum”文本文件的簡單測試。

编程语言性能实测,Go 比 Python 更胜一筹?

4. HTTP請求處理

編寫HTTP服務器確實很容易,但是我們為在Python中進行有效的模擬付出了很多努力。我們檢查了一個簡單的“hello world!” 信息需要多長時間響應。

编程语言性能实测,Go 比 Python 更胜一筹?编程语言性能实测,Go 比 Python 更胜一筹?

選Golang還是Python?

儘管Python一直是社區中的最愛,在2019年第一季度就成為GitHub上最快的編程語言排行榜上(按拉取請求數計算+17%)的第二名,但Golang並沒有落後很多,位於緊隨其後的第四位(+ 8%)。Golang與Python之間的選擇變得更加模糊。無論如何,在選擇哪一項適合你時都需要考慮一些事項。

1.可擴展性:Golang在創建時就考慮了可擴展性。它具有內置的併發性,可以同時處理多個任務。Python同樣可以使用併發,但不是內置的。它通過線程實現並行性。這意味著,如果你要處理大型數據集,那麼Golang似乎是一個更合適的選擇。

2. 性能:眾所周知,Python不是內存或CPU友好型的編程語言,但由於它擁有大量的庫,Python可以有效執行基本的開發任務。Golang具有內置功能,它更適合於微服務軟件體系結構。

3. 應用程序:Python非常適合編寫用於人工智能、數據分析、深度學習和Web開發的代碼。Golang已普遍用於系統編程,並且受到雲計算和集群計算應用程序的開發人員的喜愛。

4. 社區和庫:如前所述,Python的時代賦予了它一定的優勢。其中之一是它擁有的庫數量以及支持它的大型社區。另一方面,Golang雖然沒有Python提供的大量庫和社區支持,但仍是一種增長中的語言。我們不應該將Golang踢出局。它的增長和採用率令人難以置信,並且每天都在增長。

5. 執行性能:如果只關注速度,那麼Golang肯定會贏。

考慮所有這些因素後,你的用例將成為採用哪種語言的決定因素。在你要建立開發團隊來創建微服務的情況下,Golang將是更合理的選擇,因為它既快速,易於編碼,又可以很好地擴展。另一方面,Python更適合於AI、ML和數據分析。

因此,一對一地比較,在大多數情況下,Go會脫穎而出,被認為是使用Python的有效替代方案。開發人員需要選擇一種編程語言,要考慮其開發項目的性質和規模以及所涉及人員的技能。

好消息是,無論選擇哪種語言,兩種語言都在不斷髮展。儘管在大多數情況下,Golang似乎是一個顯而易見的選擇,但Python社區不會閒坐而不採取任何行動。兩種語言都在擴展和增長。這意味著將來我們將看到更多的功能和改進。

原文鏈接:

https://www.softkraft.co/golang-vs-python/

本文為 CSDN 翻譯,轉載請註明來源出處。


分享到:


相關文章: