同為程式語言的Go與Python,Go確實有些優勢是Python做不到的。
Go語言如今已經越來越受到大家的青睞。據悉知乎已經用Go語言代替了Python重構了搜尋部分的功能,由此可見Go語言在後端方面取代Python將慢慢成為一種趨勢,也許就在近幾年,大家可以拭目以待。
那麼接下來,我來談談Go能做到,但是Python做不到的。
Go語言除了glibc之外沒有對其他外部包的依賴,這讓部署過程十分簡便,執行環境只需要基礎的系統和必要的管理工具即可,不用擔心部署上去之後由於缺少包而執行不起來的事情,大大減少了運維的工作量。而Python就沒這麼容易了,它的部署工具生態由於早期發展的原因,可以用混亂來形容,雖然可以用映象來解決,但是與Go相比這無疑是額外的一筆精力開銷。
Go語言非常適合高併發的服務端開發,很多情況甚至不需要考慮鎖以及鎖帶來的各種問題。此外,單個的Go應用能夠有效的利用多個CPU,進一步提高保證了併發效能。而Python在這方面也是遜色許多,由於全域性所GIL的原因,它沒法像Go一樣高效率使用CPU,在部署應用的時候,總是會有些資源浪費。曾經有人統計過,如果某個Python應用啟動後需要佔用100MB記憶體你,而伺服器是32個CPU的,那麼留一個CPU給系統,執行31個應用副本就要浪費近3GB的記憶體資源。
這點也是大家經常說的,Go語言的效能趨近C語言,最好的情況下,速度能夠比Python快了近30倍。
同為程式語言的Go與Python,Go確實有些優勢是Python做不到的。
Go語言如今已經越來越受到大家的青睞。據悉知乎已經用Go語言代替了Python重構了搜尋部分的功能,由此可見Go語言在後端方面取代Python將慢慢成為一種趨勢,也許就在近幾年,大家可以拭目以待。
那麼接下來,我來談談Go能做到,但是Python做不到的。
高效部署
Go語言除了glibc之外沒有對其他外部包的依賴,這讓部署過程十分簡便,執行環境只需要基礎的系統和必要的管理工具即可,不用擔心部署上去之後由於缺少包而執行不起來的事情,大大減少了運維的工作量。而Python就沒這麼容易了,它的部署工具生態由於早期發展的原因,可以用混亂來形容,雖然可以用映象來解決,但是與Go相比這無疑是額外的一筆精力開銷。
併發性好Go語言非常適合高併發的服務端開發,很多情況甚至不需要考慮鎖以及鎖帶來的各種問題。此外,單個的Go應用能夠有效的利用多個CPU,進一步提高保證了併發效能。而Python在這方面也是遜色許多,由於全域性所GIL的原因,它沒法像Go一樣高效率使用CPU,在部署應用的時候,總是會有些資源浪費。曾經有人統計過,如果某個Python應用啟動後需要佔用100MB記憶體你,而伺服器是32個CPU的,那麼留一個CPU給系統,執行31個應用副本就要浪費近3GB的記憶體資源。
執行效能這點也是大家經常說的,Go語言的效能趨近C語言,最好的情況下,速度能夠比Python快了近30倍。