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

协程,异步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 密集型业务包括:浏览器交互、磁盘请求、网络爬虫、数据库请求等。
Python 世界对于 IO 密集型场景的并发提升有 3 种方法:多进程、多线程、异步 IO(asyncio)。理论上讲asyncio是性能最高的,原因如下:
1.进程、线程会有CPU上下文切换
2.进程、线程需要内核态和用户态的交互,性能开销大;而协程对内核透明的,只在用户态运行
3.进程、线程并不可以无限创建,最佳实践一般是 CPU*2;而协程并发能力强,并发上限理论上取决于操作系统IO多路复用(Linux下是 epoll)可注册的文件描述符的极限

在这里插入图片描述

下面是一个数据库访问的测试:

在这里插入图片描述

内存:
串行:75M
多进程:1.4G
多线程:150M
asyncio:120M

以上就是python流水线框架pypeln的安装使用教程的详细内容,更多关于python流水线框架的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Python的连接符

    详解Python的连接符

    这篇文章主要为大家介绍了Python的连接符,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • python实现日志按天分割

    python实现日志按天分割

    这篇文章主要为大家详细介绍了python实现日志按天分割,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 通过python顺序修改文件名字的方法

    通过python顺序修改文件名字的方法

    今天小编就为大家分享一篇通过python顺序修改文件名字的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Django+Celery实现定时任务的示例

    Django+Celery实现定时任务的示例

    Celery是一个基于python开发的分布式任务队列,而做python WEB开发最为流行的框架莫属Django,本示例使用主要依赖包Django+Celery实现定时任务,感兴趣的朋友一起看看吧
    2021-06-06
  • Python异常处理机制结构实例解析

    Python异常处理机制结构实例解析

    这篇文章主要介绍了Python异常处理机制结构实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 在Linux上安装Python的Flask框架和创建第一个app实例的教程

    在Linux上安装Python的Flask框架和创建第一个app实例的教程

    这篇文章主要介绍了在Linux上安装Python的Flask框架和创建第一个app实例,包括创建一个HTML模版和利用Jinja2模板引擎来做渲染的步骤,需要的朋友可以参考下
    2015-03-03
  • 用Python识别人脸,人种等各种信息

    用Python识别人脸,人种等各种信息

    这篇文章主要介绍了用Python识别人脸,人种等各种信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python字符串驻留机制的使用范围知识点详解

    python字符串驻留机制的使用范围知识点详解

    在本篇文章里小编给大家整理的是一篇关于python字符串驻留机制的使用范围相关知识点内容,有兴趣的朋友们可以学习下。
    2021-09-09
  • pandas数据集的端到端处理

    pandas数据集的端到端处理

    今天小编就为大家分享一篇关于pandas数据集的端到端处理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Python 硬币兑换问题

    Python 硬币兑换问题

    这篇文章主要介绍了Python 硬币兑换问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论