• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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

    协程,异步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 PyInstaller安装和使用教程详解
    • windows下Python安装、使用教程和Notepad++的使用教程
    • Python安装及Pycharm安装使用教程图解
    • Python 中Django安装和使用教程详解
    • ubuntu系统下Python虚拟环境的安装和使用教程
    • python的pip安装以及使用教程
    • python入门课程第一讲之安装与优缺点介绍
    上一篇:解决Numpy与Pytorch彼此转换时的坑
    下一篇:在pytorch中计算准确率,召回率和F1值的操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python流水线框架pypeln的安装使用教程 python,流水线,框架,pypeln,