濮阳杆衣贸易有限公司

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

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

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

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

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

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

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python流水線框架pypeln的安裝使用教程》,本文關(guān)鍵詞  python,流水線,框架,pypeln,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(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)民參考!
  • 推薦文章
    谷城县| 武功县| 吉首市| 黑水县| 博客| 青阳县| 潜江市| 亳州市| 安义县| 仙游县| 怀柔区| 琼结县| 舒兰市| 礼泉县| 林西县| 龙州县| 天气| 资中县| 深圳市| 尼勒克县| 友谊县| 乌拉特中旗| 盱眙县| 基隆市| 监利县| 驻马店市| 桂林市| 合肥市| 遵义县| 新兴县| 白水县| 宁都县| 如东县| 北川| 蕉岭县| 锦州市| 绥德县| 黄冈市| 揭西县| 临泽县| 新巴尔虎左旗|