0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Golang:含著金湯匙出生,高并發(fā)性能堪比C++

中科院長(zhǎng)春光機(jī)所 ? 來(lái)源:新智元 ? 作者:新智元 ? 2020-11-13 10:20 ? 次閱讀

在使用健壯的軟件開(kāi)發(fā)編程語(yǔ)言方面,Golang 已經(jīng)被許多人選中。這種編程語(yǔ)言為程序員提供了獨(dú)特的好處。 Go 基本上是一個(gè)編譯語(yǔ)言,它的靈感來(lái)自C。所以,如果你精通 C 的語(yǔ)法,你會(huì)發(fā)現(xiàn) Golang 是有用的。學(xué)習(xí)這種編程語(yǔ)言只需要幾天時(shí)間,因?yàn)镚o的語(yǔ)法類似于C。 今天,Golang 已經(jīng)被一些知名公司使用,比如 Netflix,Uber,F(xiàn)acebook,Dropbox 等等。它有望在未來(lái)成為一種廣泛使用的編程語(yǔ)言。

Golang:含著金湯匙出生,高并發(fā)性能堪比C++

Go得到了谷歌的資金支持。 由于 Google 已經(jīng)投資了這種編程語(yǔ)言,開(kāi)發(fā)者可以信任這種編程語(yǔ)言,由于該產(chǎn)品是由谷歌支持的,預(yù)計(jì)Go語(yǔ)言將帶來(lái)高端安全性。 Go也被認(rèn)為是一種快速而完美的編程語(yǔ)言,具有豐富有趣的特性,最關(guān)鍵的一點(diǎn)是其簡(jiǎn)單的語(yǔ)法和結(jié)構(gòu)。因此,使用這種編程語(yǔ)言并不需要花費(fèi)很多時(shí)間。開(kāi)發(fā)人員可以提高他們?yōu)檐浖驊?yīng)用程序編寫(xiě)代碼的速度。 Go語(yǔ)言還具有高效的并發(fā)性和速度,與 Java、 C、 C + + 等編程語(yǔ)言相似。

Go語(yǔ)言還可以跨平臺(tái),包括 Linux,Windows,Unix,BSD 等。它也適用于其他許多操作系統(tǒng)。Go具有作為一種重要的編程語(yǔ)言在未來(lái)持續(xù)發(fā)展的潛力,作為一種跨平臺(tái)的編程語(yǔ)言,它為希望在多個(gè)平臺(tái)上構(gòu)建應(yīng)用程序的開(kāi)發(fā)人員提供了便利。 同時(shí),Go語(yǔ)言的垃圾收集器特性值得一提,這個(gè)特性為程序員提供了自動(dòng)內(nèi)存清理工具。當(dāng)內(nèi)存滿時(shí),程序員必須花費(fèi)大量時(shí)間查找垃圾代碼來(lái)清理空間,而Go帶有自動(dòng)垃圾檢測(cè)和清理功能。使程序員能專注于他們的應(yīng)用程序或軟件開(kāi)發(fā),而不用考慮內(nèi)存或空間。

Python適合初學(xué)者,Golang才是做工程的料 Python 是一種高級(jí)的面向?qū)ο蟮恼Z(yǔ)言。它具有內(nèi)置的數(shù)據(jù)結(jié)構(gòu),結(jié)合了動(dòng)態(tài)綁定和類型,是快速開(kāi)發(fā)的理想選擇。Python 還提供了對(duì)模塊和包的支持,這允許系統(tǒng)模塊化和代碼重用。 Python 也是入門(mén)最快的編程語(yǔ)言之一,因?yàn)樗恍枰苌俚拇a行。重點(diǎn)是可讀性和簡(jiǎn)潔性,這使它成為初學(xué)者的一個(gè)很好的選擇。

圖:Stack Overflow上Python和Go的問(wèn)題數(shù) 切換到一種新的編程語(yǔ)言通常是一件大事,特別是當(dāng)團(tuán)隊(duì)成員對(duì)原始的語(yǔ)言有豐富經(jīng)驗(yàn)的時(shí)候。今年早些時(shí)候,Stream 將它的主要編程語(yǔ)言從 Python 轉(zhuǎn)換為 Go。 Python和Go的關(guān)鍵區(qū)別: 1.Go是一種過(guò)程化的、函數(shù)式的并發(fā)語(yǔ)言,而 Python 是一種面向?qū)ο蟮?、命令式的、函?shù)式的語(yǔ)言 2.Go 支持并發(fā),但 Python 沒(méi)有任何內(nèi)置的并發(fā)機(jī)制 3.Go 是系統(tǒng)編程的理想選擇,而 Python 是一種用于解決數(shù)據(jù)科學(xué)問(wèn)題的流行語(yǔ)言 4.Go 不提供異常,而 Python 支持異常;Go 不支持繼承,而 Python 支持繼承

5.雖然使用 Go 構(gòu)建代碼比 Python 或 Ruby 要花費(fèi)更多的時(shí)間,但是你可以節(jié)省大量?jī)?yōu)化代碼的時(shí)間。如上圖所示,Go的速度非常快,大概是Pyhon的30倍。

想要高性能,就從Python切換到Go吧 速度快 Go的速度非常快,它的速度接近于Java或者C,比Python快30倍。 語(yǔ)言本身的性能很重要 對(duì)于許多應(yīng)用程序來(lái)說(shuō),編程語(yǔ)言只是應(yīng)用程序和數(shù)據(jù)庫(kù)之間的粘合劑。語(yǔ)言本身的表現(xiàn)通常并不重要。 Python 是一種很棒的語(yǔ)言,但對(duì)于序列化/反序列化、排序和聚合等,它的性能很差。Cassandra 檢索數(shù)據(jù)需要1毫秒的時(shí)間,而 Python 在接下來(lái)的10毫秒內(nèi)將其轉(zhuǎn)換為對(duì)象。 開(kāi)發(fā)者的效率,不用太創(chuàng)新 很多人第一次接觸編程時(shí),總是喜歡使用 Python 的高級(jí)特性。Python 可以讓開(kāi)發(fā)者從正在編寫(xiě)的代碼中獲得很好的想法。 這些特性很有趣,但是大多數(shù)程序員認(rèn)為它使得閱讀其他人的代碼變得更加困難。 Go 強(qiáng)迫你使用最基本的東西,這使得閱讀別人的代碼變得容易。 并發(fā)和通道 作為一種編程語(yǔ)言,Go 總是盡可能簡(jiǎn)單而且沒(méi)有引入太多的新概念,因?yàn)樗哪繕?biāo)是創(chuàng)建一種易于使用的編程語(yǔ)言。 唯一有創(chuàng)新的地方是 Goroutines 和 Channel。Goroutine 是 Go 的輕量級(jí)線程解決方案,而 Channels 是與 Goss 交互的首選方式。 Goroutine 非常輕量級(jí),只需要幾千字節(jié)的額外內(nèi)存。因?yàn)?Goroutine 是如此的輕量級(jí),可以有成百上千的 goroutine 在同一時(shí)間運(yùn)行。 Goroutine 和基于信道的并發(fā)方案使應(yīng)用程序可以輕松地使用所有可用的 CPU 內(nèi)核和處理并發(fā) IoOs,而不會(huì)使開(kāi)發(fā)復(fù)雜化。與 Python/Java 相比,在 Goroutinerequires 上運(yùn)行一個(gè)函數(shù)只需要很少的固定代碼。 編譯速度快 與 Java 和 C 等語(yǔ)言的海龜速度編譯相比,用 Go 編寫(xiě)的最大的微服務(wù)項(xiàng)目只需6秒鐘就可以編譯完成。Go 的快速編譯速度是它的主要生產(chǎn)力。 強(qiáng)大的生態(tài)系統(tǒng) 相對(duì)于其他新的語(yǔ)言,比如 Rust 或 Elixir,Go 有著巨大的生態(tài)系統(tǒng)優(yōu)勢(shì)。盡管它不能與 Java、 Python 或 Node 相提并論,但仍可以找到滿足許多基本需求的高質(zhì)量包。 Gofmt,強(qiáng)制代碼格式化 Gofmt 是一個(gè)優(yōu)秀的命令行程序,內(nèi)置在 Go 編譯器中,用于格式化代碼。在功能方面,它類似于 Python 的 Autopep 8。Gofmt 以正式的方式對(duì)代碼進(jìn)行格式化,以避免所有這些參數(shù)。 gRPC 和協(xié)議緩沖 Go 提供了一流的協(xié)議緩沖和 gRPC 支持。這兩個(gè)工具完美地結(jié)合在一起,構(gòu)建了一個(gè)通過(guò) RPC 進(jìn)行通信的微服務(wù)器。只需要編輯一個(gè)庫(kù)文件,該文件定義 RPC 調(diào)用及其參數(shù),服務(wù)端和客戶端可以從該文件自動(dòng)生成適當(dāng)?shù)拇a。這不僅速度快,而且占用網(wǎng)絡(luò)空間少,使用更方便。 不過(guò),雖然有這么多的優(yōu)點(diǎn),Go語(yǔ)言也并不是那么的完美。 相對(duì)Python,Go語(yǔ)言也有不足: Go語(yǔ)言不是一種通用語(yǔ)言; 與 Go 集成的 API 沒(méi)有官方支持的 Go SDK; 庫(kù)的支持不夠豐富; 依賴管理不夠健全 不知道各位小伙伴或者身邊的朋友是不是開(kāi)始使用Go了呢?

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1916

    瀏覽量

    34382
  • 編譯語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    5799
  • go語(yǔ)言
    +關(guān)注

    關(guān)注

    1

    文章

    156

    瀏覽量

    8996

原文標(biāo)題:人生苦短,我要換Go!

文章出處:【微信號(hào):cas-ciomp,微信公眾號(hào):中科院長(zhǎng)春光機(jī)所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    并發(fā)物聯(lián)網(wǎng)云平臺(tái)是什么

    并發(fā)物聯(lián)網(wǎng)云平臺(tái)是一種能夠處理大量設(shè)備同時(shí)連接并進(jìn)行數(shù)據(jù)交換的云計(jì)算平臺(tái)。這種平臺(tái)通常被設(shè)計(jì)用來(lái)應(yīng)對(duì)來(lái)自數(shù)以萬(wàn)計(jì)甚至數(shù)十億計(jì)的物聯(lián)網(wǎng)設(shè)備的并發(fā)請(qǐng)求,保證系統(tǒng)的穩(wěn)定性和響應(yīng)速度。 首先,從技術(shù)層面
    的頭像 發(fā)表于 08-13 13:50 ?132次閱讀

    并發(fā)系統(tǒng)的藝術(shù):如何在流量洪峰中游刃有余

    前言 我們常說(shuō)的三,并發(fā)可用、高性能,這些技術(shù)是構(gòu)建現(xiàn)代互聯(lián)網(wǎng)應(yīng)用程序所必需的。對(duì)于京東618備戰(zhàn)來(lái)說(shuō),所有的中臺(tái)系統(tǒng)服務(wù),無(wú)疑都是
    的頭像 發(fā)表于 08-05 13:43 ?110次閱讀
    <b class='flag-5'>高</b><b class='flag-5'>并發(fā)</b>系統(tǒng)的藝術(shù):如何在流量洪峰中游刃有余

    C++語(yǔ)言基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《C++語(yǔ)言基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 07-19 10:58 ?6次下載

    C++中實(shí)現(xiàn)類似instanceof的方法

    C++有多態(tài)與繼承,但是很多人開(kāi)始學(xué)習(xí)C++,有時(shí)候會(huì)面臨一個(gè)常見(jiàn)問(wèn)題,就是如何向下轉(zhuǎn)型,特別是不知道具體類型的時(shí)候,這個(gè)時(shí)候就希望C++ 可以向Java或者Python中有instanceof這個(gè)
    的頭像 發(fā)表于 07-18 10:16 ?357次閱讀
    <b class='flag-5'>C++</b>中實(shí)現(xiàn)類似instanceof的方法

    使用 MISRA C++:2023? 避免基于范圍的 for 循環(huán)中的錯(cuò)誤

    在前兩篇博客中,我們?向您介紹了新的 MISRA C++ 標(biāo)準(zhǔn)?和?C++ 的歷史?。在這篇博客中,我們將仔細(xì)研究以 C++ 中?for?循環(huán)為中心的特定規(guī)則。
    的頭像 發(fā)表于 03-28 13:53 ?525次閱讀
    使用 MISRA <b class='flag-5'>C++</b>:2023? 避免基于范圍的 for 循環(huán)中的錯(cuò)誤

    c語(yǔ)言,c++,java,python區(qū)別

    操作系統(tǒng)、嵌入式系統(tǒng)等對(duì)性能要求較高的場(chǎng)景。C語(yǔ)言的語(yǔ)法相對(duì)簡(jiǎn)單,學(xué)習(xí)曲線較平緩,也是學(xué)習(xí)其他高級(jí)語(yǔ)言的入門(mén)語(yǔ)言。 C++C++是在C語(yǔ)
    的頭像 發(fā)表于 02-05 14:11 ?1384次閱讀

    vb語(yǔ)言和c++語(yǔ)言的區(qū)別

    Microsoft開(kāi)發(fā)的一種面向?qū)ο蟮氖录?qū)動(dòng)編程語(yǔ)言。它的設(shè)計(jì)目標(biāo)是簡(jiǎn)化編程過(guò)程,讓初學(xué)者也能快速上手。與之相比,C++語(yǔ)言是一種通用的、面向?qū)ο蟮木幊陶Z(yǔ)言,其設(shè)計(jì)目標(biāo)是提供高性能的系統(tǒng)級(jí)編程。 語(yǔ)法: VB語(yǔ)言的語(yǔ)法較為簡(jiǎn)單,使用了很多可讀性強(qiáng)的關(guān)鍵詞,如“
    的頭像 發(fā)表于 02-01 10:20 ?1538次閱讀

    雷軍:小米汽車(chē)性能兩百萬(wàn)油車(chē)

    先有問(wèn)界是千萬(wàn)之內(nèi)最好的SUV ;現(xiàn)在雷軍也放出豪言壯語(yǔ);小米汽車(chē)性能兩百萬(wàn)油車(chē)。 近日雷軍在接受央視采訪時(shí),再度回應(yīng)了小米汽車(chē)售價(jià)。大家喊的9.9萬(wàn)元、14.9萬(wàn)元甚至19.9萬(wàn)元都是開(kāi)玩笑
    的頭像 發(fā)表于 01-22 18:04 ?1338次閱讀

    C++簡(jiǎn)史:C++是如何開(kāi)始的

    MISRA C++:2023,MISRA? C++ 標(biāo)準(zhǔn)的下一個(gè)版本,來(lái)了!為了幫助您做好準(zhǔn)備,我們介紹了 Perforce 首席技術(shù)支持工程師 Frank van den Beuken 博士撰寫(xiě)
    的頭像 發(fā)表于 01-11 09:00 ?429次閱讀
    <b class='flag-5'>C++</b>簡(jiǎn)史:<b class='flag-5'>C++</b>是如何開(kāi)始的

    如何使用Golang連接MySQL

    首先我們來(lái)看如何使用Golang連接MySQL。
    的頭像 發(fā)表于 01-08 09:42 ?2940次閱讀
    如何使用<b class='flag-5'>Golang</b>連接MySQL

    C語(yǔ)言和C++中那些不同的地方

    C語(yǔ)言雖說(shuō)經(jīng)常和C++在一起被大家提起,但可千萬(wàn)不要以為它們是一個(gè)東西。現(xiàn)在我們常用的C語(yǔ)言是C89標(biāo)準(zhǔn),C++
    的頭像 發(fā)表于 12-07 14:29 ?774次閱讀
    <b class='flag-5'>C</b>語(yǔ)言和<b class='flag-5'>C++</b>中那些不同的地方

    Golang接口的作用和應(yīng)用場(chǎng)景

    Golang(Go)作為一門(mén)現(xiàn)代的靜態(tài)類型編程語(yǔ)言,提供了許多強(qiáng)大的特性,其中之一便是接口(interface)。接口是Golang中的一個(gè)核心概念,它具有廣泛的應(yīng)用場(chǎng)景,可以幫助開(kāi)發(fā)者實(shí)現(xiàn)
    的頭像 發(fā)表于 12-05 10:44 ?988次閱讀

    c++怎么開(kāi)始編程

    C++是一種高級(jí)的、通用的編程語(yǔ)言,用于開(kāi)發(fā)各種類型的應(yīng)用程序。它是從C語(yǔ)言演變而來(lái),也是一種靜態(tài)類型語(yǔ)言,可以在不同的平臺(tái)上進(jìn)行開(kāi)發(fā)。C++具有高度的靈活性和性能,并且廣泛應(yīng)用于游戲
    的頭像 發(fā)表于 11-27 15:56 ?739次閱讀

    性能C++編程的核心要點(diǎn)

    也有助于降低能耗、減少散熱問(wèn)題,延長(zhǎng)硬件使用壽命。 Linux環(huán)境下C++程序的特點(diǎn) Linux操作系統(tǒng)具有開(kāi)源、穩(wěn)定、高效的特點(diǎn),成為C++程序員的首選開(kāi)發(fā)環(huán)境。在Linux環(huán)境下,C++程序可以充分利用操作系統(tǒng)提供的豐富功能
    的頭像 發(fā)表于 11-09 11:29 ?565次閱讀

    C++之父新作帶你勾勒現(xiàn)代C++地圖

    為了幫助大家解決這些痛點(diǎn)問(wèn)題,讓大家領(lǐng)略現(xiàn)代C++之美,掌握其中的精髓,更好地使用C++C++之父Bjarne Stroustrup坐不住了,他親自操刀寫(xiě)就了這本《C++之旅》!
    的頭像 發(fā)表于 10-30 16:35 ?699次閱讀
    <b class='flag-5'>C++</b>之父新作帶你勾勒現(xiàn)代<b class='flag-5'>C++</b>地圖