精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Go在單線程計算性能上的優勢

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 11:16 ? 次閱讀

一文中,我們討論了Go在單線程計算性能上的優勢。

現在,考慮這樣的一種場景:

我們需要從某些網址中同步數據并進行計算,保存到本地redis緩存中。

現在,我們可以通過編寫Go Worker的方式,將計算和保存的過程保存在本地的redis緩存中,然后使用Celery來調度這些任務。

問題在于,從這些網址中獲取數據的步驟,寫在Go Worker里是否合適?Go進行網絡請求是否比Python更穩定、速度更快?今天我們就來簡單地比較一下。

1.同步比較

首先,試試Go語言請求百度,獲得這個請求和拿到回應之間的時間差:

圖片

結果如下:

圖片

可以看到,平均耗時在250ms左右。

然后測試Python的requests模塊請求網站:

圖片

結果如下:

圖片

平均約220ms,似乎在單個請求的情況下,Python略勝一籌。

但是單個請求的比較是沒有意義的,因為這個差異可以忽略不計。

重點還是在下面并發請求的比較上。

2.并發比較

現在,我們試試用Go語言并發請求10次百度:

圖片

效果如下:

圖片

平均消耗在300ms左右,和單次請求差不多,速度還是相當快的。

接下來試試Python的并發請求,值得注意的是,這里沒有用requests模板,因為 requests模塊是同步的 ,這一點一定要注意。

因此在這里需要使用aiohttp進行并發請求:

圖片

測試結果如下:

圖片

可以看到,平均耗時在500ms左右,在并發的時候,其速度相比于Go略遜一籌。

3.總結

可以看到,Python在單個請求的時候(使用requests模塊)速度比Go稍微快一丟丟,但是這樣的區別幾乎可以忽略不計。

在并發10次請求的情況下,Go平均耗時300ms,而Python平均耗時500ms,Go略勝一籌。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 緩存
    +關注

    關注

    1

    文章

    233

    瀏覽量

    26648
  • Go
    Go
    +關注

    關注

    0

    文章

    43

    瀏覽量

    12241
  • Redis
    +關注

    關注

    0

    文章

    371

    瀏覽量

    10846
  • 單線程
    +關注

    關注

    0

    文章

    17

    瀏覽量

    1769
收藏 人收藏

    評論

    相關推薦

    單線程的雙任務調度

    STM32是單線程的,通信協議層和應用功能層的耦合性比較低,如果獨立運行,提高效率不少,主要實現的方法有哪些呢?
    發表于 01-10 10:15

    單線程SRAM靜態內存使用

    概述本篇只要介紹這么使用STM32CubeMx工具添加RT-Thread操作系統組件,碼代碼的IDE是keil。介紹單線程SRAM靜態內存使用。如果還不知道,這么使用STM32CubeMx工具添加
    發表于 08-24 06:57

    一種單線程編程思路簡析

    事件驅動?邏輯控制?基于回調的事件驅動或者邏輯控制特點代碼接口實現用法基于回調的事件驅動或者邏輯控制本文提供了一種單線程編程思路,并簡單實現了該思路。受PLC編程線圈和觸點概念的啟發。將程序抽象理解
    發表于 02-16 06:58

    python多線程和多進程對比

    時間:2.0076842308044434秒3. 性能對比成果總結將結果匯總一下,制成表格。我們來分析下這個表格。首先是CPU密集型,多線程以對比單線程,不僅沒有優勢,顯然還由于要不斷
    發表于 03-15 16:42

    線程好還是單線程好?單線程和多線程的區別 優缺點分析

    摘要:如今單線程與多線程已經得到普遍運用,那么到底多線程好還是單線程好呢?單線程和多線程的區別又
    發表于 12-08 09:33 ?8.1w次閱讀

    從I/O的阻塞與非阻塞、I/O處理的單線程與多線程角度探討服務器模型

    這里探討的服務器模型主要指的是服務器端對I/O的處理模型。從不同維度可以有不同的分類,這里從I/O的阻塞與非阻塞、I/O處理的單線程與多線程角度探討服務器模型。
    的頭像 發表于 01-08 16:13 ?6973次閱讀

    Intel處理器占據CPU單線程性能前17位 酷睿i9-9900KS仍穩居榜首

    目前,PassMark的CPU單線程性能圖表仍然由Intel芯片主導。AMD的Ryzen 9 PRO 3900前面,總共有17個Intel處理器占據了主導地位。
    發表于 04-09 14:39 ?2709次閱讀
    Intel處理器占據CPU<b class='flag-5'>單線程</b><b class='flag-5'>性能</b>前17位 酷睿i9-9900KS仍穩居榜首

    實現Java多線程爬蟲的兩點

    我們調試爬蟲程序的時候,單線程爬蟲沒什么問題,但是當我們在線上環境使用單線程爬蟲程序去采集網頁時,單線程就暴露出了兩個致命的問題:
    的頭像 發表于 05-05 21:25 ?1938次閱讀
    實現Java多<b class='flag-5'>線程</b>爬蟲的兩點

    這款16核怪物單線程和多線程性能方面均躍居主流處理器榜首

    盡管AMD一段時間以來一直主流芯片中注入更多的內核,但在單線程性能方面,這家芯片制造商的產品還不能與Intel的產品相提并論。如果這些PassMark號碼準確無誤,那么Zen 3似乎終于可以輕而易舉地獲得AMD的青睞。
    的頭像 發表于 10-28 15:24 ?2068次閱讀

    單線程也能開發異步任務?ACE JS框架到底是如何做到的

    HarmonyOS 2提供了兩種應用開發語言:Java和JS。Java線程性能夠讓多任務并行,充分利用硬件資源開發出高性能的應用。而JS卻是一個單線程語言,無法像Java一樣創建新的
    的頭像 發表于 08-13 17:16 ?2006次閱讀
    <b class='flag-5'>單線程</b>也能開發異步任務?ACE JS框架到底是如何做到的

    Redis為何選擇單線程

    Redis為何選擇單線程Redisv6.0以前,Redis的核心網絡模型選擇用單線程來實現。 核心意思就是,對于一個 DB 來說,CPU 通常不會是瓶頸,因為大多數請求不會是 CPU 密集型
    的頭像 發表于 10-09 10:59 ?357次閱讀

    單線程是否會引起 fail-fast機制

    ConcurrentModificationException 異常,產生 fail-fast 事件。 多線程?并發修改?才會引起 fail-fast 機制保護程序?小 B 覺得這個答案沒有說全,面試官說了單線程
    的頭像 發表于 10-10 16:31 ?379次閱讀
    <b class='flag-5'>單線程</b>是否會引起 fail-fast機制

    redis多線程還能保證線程安全嗎

    Redis是一種使用C語言編寫的高性能鍵值存儲系統,它是單線程的,因為使用了多路復用的方式來處理并發請求。這樣的實現方式帶來了很好的性能,但同時也引發了一些線程安全方面的問題。
    的頭像 發表于 12-05 10:28 ?1690次閱讀

    什么是多核多線程?多核多線程如何提高程序的運行效率?

    單線程無法充分利用多核處理器的并行計算能力。
    的頭像 發表于 02-20 10:22 ?1269次閱讀

    Linux性能基準測試工具選擇與測試策略

    Super_Pi 是一種用于計算圓周率π的程序,通常用于測試計算性能和穩定性。它的主要用途是測量系統的單線程性能,因為它是一個
    發表于 04-26 16:24 ?369次閱讀
    Linux<b class='flag-5'>性能</b>基準測試工具選擇與測試策略