濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > python流水線框架pypeln的安裝使用教程

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

熱門標(biāo)簽:海南400電話如何申請(qǐng) 公司電話機(jī)器人 白銀外呼系統(tǒng) 哈爾濱ai外呼系統(tǒng)定制 唐山智能外呼系統(tǒng)一般多少錢 騰訊外呼線路 陜西金融外呼系統(tǒng) 激戰(zhàn)2地圖標(biāo)注 廣告地圖標(biāo)注app

1. 安裝和入門使用

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

2 基于multiprocessing.Process

這個(gè)是基于多進(jìn)程。

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 三者性能對(duì)比

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

下面是一個(gè)數(shù)據(jù)庫訪問的測試:

內(nèi)存:
串行:75M
多進(jìn)程:1.4G
多線程:150M
asyncio:120M

以上就是python流水線框架pypeln的安裝使用教程的詳細(xì)內(nèi)容,更多關(guān)于python流水線框架的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python PyInstaller安裝和使用教程詳解
  • windows下Python安裝、使用教程和Notepad++的使用教程
  • Python安裝及Pycharm安裝使用教程圖解
  • Python 中Django安裝和使用教程詳解
  • ubuntu系統(tǒng)下Python虛擬環(huán)境的安裝和使用教程
  • python的pip安裝以及使用教程
  • python入門課程第一講之安裝與優(yōu)缺點(diǎn)介紹

標(biāo)簽:上海 四川 黑龍江 常德 益陽 黔西 鷹潭 惠州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python流水線框架pypeln的安裝使用教程》,本文關(guān)鍵詞  python,流水線,框架,pypeln,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python流水線框架pypeln的安裝使用教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于python流水線框架pypeln的安裝使用教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    石渠县| 定州市| 凤庆县| 兴隆县| 辽阳市| 抚宁县| 收藏| 宾阳县| 桦川县| 浮山县| 秭归县| 通州市| 水富县| 社会| 枣阳市| 同江市| 瑞丽市| 莱芜市| 贵港市| 宁陕县| 灵丘县| 武清区| 望奎县| 栖霞市| 定南县| 伊春市| 赤城县| 汶川县| 新安县| 禹州市| 渑池县| 永和县| 江阴市| 华坪县| 吴川市| 平湖市| 抚远县| 青海省| 宁波市| 长岛县| 丁青县|