欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python流水線框架pypeln的安裝使用教程

 更新時間:2021年05月13日 09:39:47   作者:IE06  
這篇文章主要介紹了python流水線框架pypeln的安裝使用教程,通過安裝pip install pypeln,基本元素在文中給大家介紹過,需要的朋友可以參考下

1. 安裝和入門使用

安裝pip install pypeln,基本元素如下:

在這里插入圖片描述

2 基于multiprocessing.Process

這個是基于多進程。

import pypeln as pl
import time
from random import random

def slow_add1(x):
    time.sleep(random()) # <= some slow computation
    return x + 1

def slow_gt3(x):
    time.sleep(random()) # <= some slow computation
    return x > 3

data = range(10) # [0, 1, 2, ..., 9] 

stage = pl.process.map(slow_add1, data, workers=3, maxsize=4)
stage = pl.process.filter(slow_gt3, stage, workers=2)

data = list(stage) # e.g. [5, 6, 9, 4, 8, 10, 7]

3 基于threading.Thread

顧名思義,基于多線程。

import pypeln as pl
import time
from random import random

def slow_add1(x):
    time.sleep(random()) # <= some slow computation
    return x + 1

def slow_gt3(x):
    time.sleep(random()) # <= some slow computation
    return x > 3

data = range(10) # [0, 1, 2, ..., 9] 

stage = pl.thread.map(slow_add1, data, workers=3, maxsize=4)
stage = pl.thread.filter(slow_gt3, stage, workers=2)

data = list(stage) # e.g. [5, 6, 9, 4, 8, 10, 7]

4 基于asyncio.Task

協(xié)程,異步io。

import pypeln as pl
import asyncio
from random import random

async def slow_add1(x):
    await asyncio.sleep(random()) # <= some slow computation
    return x + 1

async def slow_gt3(x):
    await asyncio.sleep(random()) # <= some slow computation
    return x > 3

data = range(10) # [0, 1, 2, ..., 9] 

stage = pl.task.map(slow_add1, data, workers=3, maxsize=4)
stage = pl.task.filter(slow_gt3, stage, workers=2)

data = list(stage) # e.g. [5, 6, 9, 4, 8, 10, 7]

5 三者性能對比

IO 密集型應用CPU等待IO時間遠大于CPU 自身運行時間,太浪費;常見的 IO 密集型業(yè)務包括:瀏覽器交互、磁盤請求、網絡爬蟲、數據庫請求等。
Python 世界對于 IO 密集型場景的并發(fā)提升有 3 種方法:多進程、多線程、異步 IO(asyncio)。理論上講asyncio是性能最高的,原因如下:
1.進程、線程會有CPU上下文切換
2.進程、線程需要內核態(tài)和用戶態(tài)的交互,性能開銷大;而協(xié)程對內核透明的,只在用戶態(tài)運行
3.進程、線程并不可以無限創(chuàng)建,最佳實踐一般是 CPU*2;而協(xié)程并發(fā)能力強,并發(fā)上限理論上取決于操作系統(tǒng)IO多路復用(Linux下是 epoll)可注冊的文件描述符的極限

在這里插入圖片描述

下面是一個數據庫訪問的測試:

在這里插入圖片描述

內存:
串行:75M
多進程:1.4G
多線程:150M
asyncio:120M

以上就是python流水線框架pypeln的安裝使用教程的詳細內容,更多關于python流水線框架的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解Python的連接符

    詳解Python的連接符

    這篇文章主要為大家介紹了Python的連接符,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python實現(xiàn)日志按天分割

    python實現(xiàn)日志按天分割

    這篇文章主要為大家詳細介紹了python實現(xiàn)日志按天分割,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 通過python順序修改文件名字的方法

    通過python順序修改文件名字的方法

    今天小編就為大家分享一篇通過python順序修改文件名字的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Django+Celery實現(xiàn)定時任務的示例

    Django+Celery實現(xiàn)定時任務的示例

    Celery是一個基于python開發(fā)的分布式任務隊列,而做python WEB開發(fā)最為流行的框架莫屬Django,本示例使用主要依賴包Django+Celery實現(xiàn)定時任務,感興趣的朋友一起看看吧
    2021-06-06
  • Python異常處理機制結構實例解析

    Python異常處理機制結構實例解析

    這篇文章主要介紹了Python異常處理機制結構實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 在Linux上安裝Python的Flask框架和創(chuàng)建第一個app實例的教程

    在Linux上安裝Python的Flask框架和創(chuàng)建第一個app實例的教程

    這篇文章主要介紹了在Linux上安裝Python的Flask框架和創(chuàng)建第一個app實例,包括創(chuàng)建一個HTML模版和利用Jinja2模板引擎來做渲染的步驟,需要的朋友可以參考下
    2015-03-03
  • 用Python識別人臉,人種等各種信息

    用Python識別人臉,人種等各種信息

    這篇文章主要介紹了用Python識別人臉,人種等各種信息,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python字符串駐留機制的使用范圍知識點詳解

    python字符串駐留機制的使用范圍知識點詳解

    在本篇文章里小編給大家整理的是一篇關于python字符串駐留機制的使用范圍相關知識點內容,有興趣的朋友們可以學習下。
    2021-09-09
  • pandas數據集的端到端處理

    pandas數據集的端到端處理

    今天小編就為大家分享一篇關于pandas數據集的端到端處理,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Python 硬幣兌換問題

    Python 硬幣兌換問題

    這篇文章主要介紹了Python 硬幣兌換問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07

最新評論