python 파이프라인 프레임 워 크 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 기반
협정

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 밀집 형 업 무 는 브 라 우 저 상호작용,디스크 요청,인터넷 파충류,데이터 베이스 요청 등 을 포함한다.
Python 세 계 는 IO 밀집 형 장면 의 병행 향상 에 세 가지 방법 이 있 습 니 다.다 중 프로 세 스,다 중 스 레 드,비동기 IO(asyncio)입 니 다.이론 적 으로 asyncio 는 성능 이 가장 높 은 데 그 이 유 는 다음 과 같다.
1.프로 세 스,스 레 드 에 CPU 컨 텍스트 전환 이 있 습 니 다.
2.프로 세 스,스 레 드 는 커 널 상태 와 사용자 상태의 상호작용 이 필요 하고 성능 비용 이 많이 든다.협 정 은 커 널 에 투명 하고 사용자 상태 에서 만 실 행 됩 니 다.
3.프로 세 스,스 레 드 는 무한 으로 만 들 수 없습니다.가장 좋 은 실천 은 보통 CPU*2 입 니 다.한편,협 정 병발 능력 이 강하 고 병발 상한 선 이론 은 운영 체제 IO 다 중 재 활용(Linux 아래 는 epoll)이 등록 할 수 있 는 파일 설명자 의 한계 에 달 려 있다.
在这里插入图片描述
다음은 데이터베이스 접근 테스트 입 니 다.
在这里插入图片描述
메모리:
직렬:75M
다 중 프로 세 스:1.4G
다 중 루틴:150 M
asyncio:120M
이상 은 python 파이프라인 프레임 워 크 pypeln 의 설치 사용 튜 토리 얼 에 대한 상세 한 내용 입 니 다.python 파이프라인 프레임 워 크 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기