卓越性能代码_编程语言性能实测,Go比Python更胜一筹?
作者 | Pawel Dziuba?ka, Sebastian Karasiewicz
譯者 | 泓技
出品 | AI科技大本營(ID:rgznai100)
互聯網上有非常多的精彩代碼,它們成了構建各種基礎設施的基礎。你正在閱讀的這個平臺同樣也在致力于創建出色的代碼。盡管普通用戶一般不會注意到這一點,但另一方面,優秀的開發人員始終在尋求使他們的應用程序(以及他們的代碼)有更好的方法。
編寫出色代碼的基礎取決于開發人員的技能及其選擇的語言。這不可避免地導致開發人員之間的沖突,而沖突不僅關乎技能水平,而且主要關乎他們偏愛的語言(甚至有可能發生史詩般沖突)。當你將兩種出色的編程語言(例如Golang(Go)和Python)放在一起時,最有可能出現這種情況。
現在讓我們退后一步,消除個人偏見和偏好,單純地從優點和功能的角度評估這兩種語言,熟練地平整好比賽場地?,F在,我們剩下的只有兩個不錯的選擇:Go vs Python。現在的問題變成,哪個編程語言更適合你?
Python的故事
如果去詢問一些開發人員,你會聽到Python誕生之前的都不值一提,而Python之后的也都不值一提之類的話。多年來,由于它是一種非常好的編程語言,已成功贏得了龐大關注。互聯網上充滿了使用Python創建的酷炫應用。
就編程年限而言,Python算是元老。它于1991年首次被概念化。隨著年齡的增長,逐漸具備了一定的優勢。它擁有廣泛的支持者,這意味著它是穩定的,并且文檔豐富。在大多數情況下,你會找到幾乎所有內容的庫以及幾乎所有可以想到的任何代碼示例。對于開發人員和企業而言,這意味著使用Python的選擇會帶來豐富的經驗和編碼。
有很多使用Python作為基礎的開源項目,因此在大多數情況下,你不是從頭開始的。它很好地集成到企業應用程序中,并且可以在機器語言和AI應用程序中使用。但是它確實有缺點,一方面,它對于內存密集型任務不是理想的選擇,對于執行而言有點慢,另一方面,它不適合移動應用程序開發。
說到Golang(Go)
Google于2009年開發了Go語言。Go的初衷是解決實際問題。它的目標是創建一種語言,以消除C++等語言中發現的所有負擔和多余的東西,這給它帶來了性能和速度上的提升。另外,大多數第一次接觸Go的開發人員不會體會到語法的高門檻,因為Go里面熟悉的元素和易用性會令人驚喜。
這并不是說該語言在所有情況下都是完美的。盡管將速度和優雅提升到了一個新的高度,但它確實留下了一些需要改進的地方。首先,它沒有擴展庫,也不支持繼承。此外,沒有GUI庫或面向對象的編程支持。它要做的就是創建一個輕量級線程(Goroutines),智能標準庫,強大的內置安全性,并且易于使用最少的語法進行編碼。
性能測試
我們可以無休止地談論Golang或Python的優缺點,但是當我們考慮部署使用時,我們都期待它們能有卓越性能。因此,我們在Intel?Core?i7–9700KCPU @ 3.60GHz × 8核的測試設備上進行了一些測試。測試代碼可以從這里獲得https://github.com/sekarasiewicz/go-python-benchmark。
1.二分搜索
我們創建了一個整數列表(從1到100000),然后使用二分搜索查找始終相同的數字729。結果是:
2.冒泡排序
再次,我們生成了一個整數列表(這次是隨機的,共10000個元素),并使用冒泡排序算法對其進行了排序。
3.文件讀取
讀取“ lorem ipsum”文本文件的簡單測試。
4. HTTP請求處理
編寫HTTP服務器確實很容易,但是我們為在Python中進行有效的模擬付出了很多努力。我們檢查了一個簡單的“hello world!” 信息需要多長時間響應。
選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/(*本文由AI科技大本營編譯,轉載請聯系微信1092722531)
總結
以上是生活随笔為你收集整理的卓越性能代码_编程语言性能实测,Go比Python更胜一筹?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dcdc模块降额设计_模块电源应用设计的
- 下一篇: C# 子类实例化基类 基类使用不了子类的