python 파이프라인 프레임 워 크 pypeln 설치 사용 튜 토리 얼
설치
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 파이프라인 프레임 워 크 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.