0 : n -= 1 start = time .time()decrement( 100000000 )end = time .time()print(f"{end - start}s.") 結(jié)果如下: Python大約需要4秒-5秒才能完成這項(xiàng)工作,那么Go語(yǔ)言呢? package main import "fmt" import "time" var c chan int func decrement (n int ) { for n > 0 { n -= 1 }} func main" />

色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

Go語(yǔ)言比Python強(qiáng)多少

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-11-02 14:05 ? 次閱讀

1.都說Go語(yǔ)言性能非常強(qiáng)大,那么到底比Python強(qiáng)多少?

為了比較Go語(yǔ)言和Python語(yǔ)言在單線程性能上的差距,我們可以做一個(gè)簡(jiǎn)單實(shí)驗(yàn),從1億減到1:

Python代碼(以下均分別提供圖片和文字版代碼):

圖片

import time


def decrement(n):
    while n > 0:
         n -= 1


start = time.time()
decrement(100000000)
end = time.time()
print(f"{end - start}s.")

結(jié)果如下:

圖片

Python大約需要4秒-5秒才能完成這項(xiàng)工作,那么Go語(yǔ)言呢?

圖片

package main
import "fmt"
import "time"


var c chan int


func decrement(n int) {
    for n > 0 {
        n -= 1
    }
}


func main() {
    start := time.Now()
    decrement(100000000)
    fmt.Println(time.Since(start))
}

結(jié)果如下:

圖片

確實(shí),兩者差了不止100倍,看得出來Go是一個(gè)比較有前途的語(yǔ)言,具有強(qiáng)大的性能(除此之外,它還有簡(jiǎn)單易學(xué)、能輕松實(shí)現(xiàn)高并發(fā)的特點(diǎn))。

不過,它的社區(qū)建設(shè)和Python相比還是有很大的差距,許多第三方庫(kù)依然還沒有支持Go語(yǔ)言,因此,它想要替代Python還有非常長(zhǎng)的路要走。

2.Go性能強(qiáng)大、Python社區(qū)強(qiáng)大,兩者能否結(jié)合起來?

我們?cè)囋嚳茨芊裨赑ython中調(diào)用Go的方法,在Go中從1億減到1。

首先,將剛剛go語(yǔ)言版的1億減到1改為在一個(gè)函數(shù)中進(jìn)行,并返回結(jié)果:

圖片

package main


import (
    "C"
    "time"
)


var c chan int


func decrement(n int) {
    for n > 0 {
        n -= 1
    }
}


//export count_time
func count_time() *C.char {
    start := time.Now()
    decrement(100000000)
    total_time := time.Since(start).String()
    return C.CString(total_time)
}


func main() {}

然后生成動(dòng)態(tài)鏈接庫(kù)以便Python調(diào)用Go里寫的函數(shù):

go build -buildmode=c-shared -o main.so count.go

這樣會(huì)在當(dāng)前文件夾中生成 main.so 和 main.h.

在Python中我們需要加載該生成的main.so動(dòng)態(tài)鏈接庫(kù),并配置好輸出變量的類型,最后調(diào)用方法得到結(jié)果:

圖片

import time
from ctypes import cdll, c_char_p


start = time.time()


# 加載動(dòng)態(tài)鏈接庫(kù)
lib = cdll.LoadLibrary('./main.so')


# 配置輸出參數(shù)變量類型
lib.count_time.restype = c_char_p


# 調(diào)用方法
rest = lib.count_time()


end = time.time()


print(f"Go 內(nèi)部執(zhí)行時(shí)間:{rest}")
print(f"Python 整體執(zhí)行時(shí)間: {end - start}s")

結(jié)果如下:

圖片

可以看到,使用這個(gè)方案將Python和Go兩者結(jié)合起來的性能依然非常高,但就是多了一個(gè)生成和調(diào)用動(dòng)態(tài)鏈接庫(kù)的過程,增加了代碼的耦合性。

其實(shí),這也是C+Python的開發(fā)方式,只不過我們將C換成了Go,因?yàn)镚o開發(fā)起來實(shí)在是舒服多了。

如果以后你的Python代碼中有某個(gè)部分計(jì)算特別復(fù)雜,你可以嘗試將其改寫成go,通過動(dòng)態(tài)鏈接庫(kù)的方式調(diào)用go寫的代碼,將能大大提高性能。

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

    關(guān)注

    56

    文章

    4822

    瀏覽量

    85906
  • 動(dòng)態(tài)鏈接庫(kù)

    關(guān)注

    0

    文章

    11

    瀏覽量

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

    關(guān)注

    1

    文章

    158

    瀏覽量

    9248
  • 單線程
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    1817
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Go語(yǔ)言開發(fā)有什么優(yōu)勢(shì)?怎么學(xué)?

    帶來的各種問題。  3. 性能優(yōu)異。Go的性能只C/C++減少了10%左右。相對(duì)其他腳本(python/php),性能具有巨大的優(yōu)勢(shì)。  那么,Go
    發(fā)表于 12-19 16:08

    Go開發(fā)語(yǔ)言的優(yōu)勢(shì)在哪里?

    Go語(yǔ)言是谷歌發(fā)布的第二款開源編程語(yǔ)言,可以在不損失應(yīng)用程序性能的情況下降低代碼的復(fù)雜性,并專門針對(duì)多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行了優(yōu)化,開發(fā)速度極快,可以與C或C++媲美,而且更加安全、支持并行
    發(fā)表于 03-22 15:04

    python和別的語(yǔ)言所具備的優(yōu)勢(shì)

    世界上的編程語(yǔ)言有600多種,但真正主流使用的也僅有二三十種,且隨著計(jì)算機(jī)的發(fā)展,新的語(yǔ)言在不斷的誕生,過時(shí)的語(yǔ)言也在不斷的被淘汰,因此,IT開發(fā)人員應(yīng)與時(shí)俱進(jìn)學(xué)習(xí)主流編程語(yǔ)言
    發(fā)表于 04-13 14:57

    網(wǎng)易有道CEO周楓推薦Go語(yǔ)言并介紹Go語(yǔ)言的3個(gè)優(yōu)點(diǎn)

    網(wǎng)易有道CEO周楓推薦Go語(yǔ)言。他認(rèn)為Go很好地繼承了C語(yǔ)言靈活、簡(jiǎn)單有效的思想;Go有很高的生產(chǎn)效率;
    的頭像 發(fā)表于 01-31 14:11 ?5340次閱讀

    Python 轉(zhuǎn)向 Go語(yǔ)言的9大原因和3大缺點(diǎn)

    轉(zhuǎn)用一門新語(yǔ)言通常是一項(xiàng)大決策,尤其是當(dāng)你的團(tuán)隊(duì)成員中只有一個(gè)使用過它時(shí)。今年 Stream 團(tuán)隊(duì)的主要編程語(yǔ)言Python 轉(zhuǎn)向了 Go。本文解釋了其背后的九大原因以及如何做好這
    發(fā)表于 06-17 07:40 ?6885次閱讀

    我們?cè)谑褂?b class='flag-5'>Go語(yǔ)言編程之前有什么呢?為什么選擇Go語(yǔ)言編程?

    對(duì)于我們的案例,Go 語(yǔ)言由于自己的多線程模塊和 CPU 可伸縮性獲得了較好的性能。無(wú)論什么時(shí)候我們需要執(zhí)行一些內(nèi)部的請(qǐng)求,我們可以使用 Goroutine 來分別執(zhí)行,這個(gè) Python
    的頭像 發(fā)表于 07-10 14:19 ?4119次閱讀

    GoPython,Erlang的語(yǔ)言對(duì)比分析和Go編程示例概述

    本文對(duì)GoPython、Erlang做了一些有趣的分析對(duì)比,相信大家能從中感受到Go語(yǔ)言的強(qiáng)大和與眾不同。
    的頭像 發(fā)表于 07-21 09:52 ?7925次閱讀
    <b class='flag-5'>Go</b>和<b class='flag-5'>Python</b>,Erlang的<b class='flag-5'>語(yǔ)言</b>對(duì)比分析和<b class='flag-5'>Go</b>編程示例概述

    Go語(yǔ)言其實(shí)有很多優(yōu)良特性,很多時(shí)候都可以代替Python

    Go 要想撼動(dòng)編程界的常青樹 Java 二十多年的地位無(wú)疑難度頗大。據(jù) HackerRank 數(shù)據(jù)顯示,2018 年,Java 在開發(fā)者最受歡迎的編程語(yǔ)言排行榜中仍然排名第 2,Python 排名第 4,
    的頭像 發(fā)表于 02-13 10:01 ?4876次閱讀

    蘋果a14a13強(qiáng)多

    A14a13強(qiáng)多少?這可能是網(wǎng)友們最想知道的一個(gè)答案,最近蘋果發(fā)布了A14,但是并不是搭載在iPhone12上,所以用戶朋友們就對(duì)搭載A14的iPhone更加期待了,那么A14A13強(qiáng)多
    的頭像 發(fā)表于 11-19 14:47 ?3.6w次閱讀

    詳解GO語(yǔ)言的趨勢(shì)與使用情況

    Go 語(yǔ)言簡(jiǎn)單易學(xué)、性能優(yōu)良。JetBrains Blog 發(fā)布了Go 語(yǔ)言的調(diào)查報(bào)告,看看GO 語(yǔ)言
    的頭像 發(fā)表于 03-17 11:05 ?3184次閱讀

    go語(yǔ)言枚舉類型怎么用

    go 語(yǔ)言枚舉類型是這么用的?在什么場(chǎng)景下會(huì)用到枚舉?本文對(duì) go 語(yǔ)言枚舉做了詳細(xì)講解。 枚舉,是一種重要的數(shù)據(jù)類型,由一組鍵值對(duì)組成,通常用來在編程
    的頭像 發(fā)表于 09-02 09:43 ?5365次閱讀

    go語(yǔ)言中怎么使用HTTP代理

    go語(yǔ)言中怎么使用HTTP代理。
    的頭像 發(fā)表于 09-01 14:41 ?2572次閱讀

    Go/Rust挑戰(zhàn)Java/Python地位

    編程語(yǔ)言方面,Java 和 Python 仍然遙遙領(lǐng)先,并且分別微小增長(zhǎng)了 1.7% 和 3.4%;圍繞 Go (增長(zhǎng) 20%) 和 Rust (增長(zhǎng) 22%) 的興趣則大幅增加。報(bào)告稱,如果這種
    的頭像 發(fā)表于 03-06 10:19 ?844次閱讀

    Go能取代Python成為開發(fā)者的首選語(yǔ)言嗎?

    過去的很多年,Python是人工智能和數(shù)據(jù)科學(xué)領(lǐng)域最受歡迎的編程語(yǔ)言。5G時(shí)代來臨后,Python有點(diǎn)「力不從心」......Python是一個(gè)解釋性
    發(fā)表于 08-03 10:11 ?584次閱讀
    <b class='flag-5'>Go</b>能取代<b class='flag-5'>Python</b>成為開發(fā)者的首選<b class='flag-5'>語(yǔ)言</b>嗎?

    如何讓PythonGo互相調(diào)度

    我們?cè)?jīng)研究過如何讓PythonGo互相調(diào)度,當(dāng)時(shí)發(fā)現(xiàn),將Go語(yǔ)言寫的模塊打包成動(dòng)態(tài)鏈接庫(kù),就能在Python中進(jìn)行調(diào)度: 優(yōu)劣互補(bǔ)!
    的頭像 發(fā)表于 11-02 11:24 ?799次閱讀
    如何讓<b class='flag-5'>Python</b>和<b class='flag-5'>Go</b>互相調(diào)度
    主站蜘蛛池模板: 一个人在线观看视频免费 | 色哒哒影院 | 欧美中文字幕一区二区三区 | 高H高肉强J短篇校园 | 色橹橹欧美在线观看视频高清 | 一个人HD高清在线观看免费视频 | 亚洲a免费| 伊人色综合久久天天网 | 中文人妻熟妇精品乱又伦 | 久久久久久久久久毛片精品美女 | 精品高清国产a毛片 | 99久久人妻无码精品系列性欧美 | 闺蜜撬开我的腿用黄瓜折磨我 | 老师小扫货水能么多叫出来 | 高龄熟女50P| 久久精品热在线观看30 | 3344永久在线观看视频免费 | 色噜噜2017最新综合 | 国产精品成人A蜜柚在线观看 | 成人久久欧美日韩一区二区三区 | 玖玖在线精品 | 国产成人一区二区三中文 | 国产成人精品精品欧美 | 天堂精品国产自在自线 | 国产免费午夜 | 日本久久黄色 | 曰批视频免费40分钟不要钱 | 99热久久这里只有精品视频 | 97在线看视频福利免费 | 国产看午夜精品理论片 | 国产亚洲精品看片在线观看 | 又色又爽又黄gif动态视频 | 草莓视频在线看免费高清观看 | 快播欧美大片 | 亚洲色大成网站WWW永久麻豆 | 欲香欲色天天综合和网 | 久久久高清国产999尤物 | 亚洲精品成人AV在线观看爽翻 | 亚洲 日韩 国产 制服 在线 | 健身房被教练啪到腿软H | 男女交性视频无遮挡全过程 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品