当前位置: 首页 > news >正文

使用 multiprocessing 多进程处理批量数据

示例代码

import multiprocessingdef process_data(data):# 这里是处理单个数据的过程return data * 2# 待处理的数据
data = [1, 2, 3, 4, 5]def normal_func():# 普通处理方式result = []for obj in data:result.append(process_data(obj)return resultdef parallel_func():# 多进程处理方式pool = multiprocessing.Pool(multiprocessing.cpu_count())result = pool.map(process_data, data)pool.close()return resultif __name__ == '__main__':result = normal_func()result = parallel_func()

multiprocessing.Pool 创建进程池, 传入的参数是要要使用的 CPU 内核数量, 直接用 cpu_count() 可以拿到当前硬件配置所有的 CPU 内核数.

pool.map 可以直接将处理后的结果拼接成一个 list 对象

应用在实际数据处理代码的效果对比:

  • 普通处理方式, 用时 221 秒
    在这里插入图片描述
  • 多进程处理方式, 用时 39 秒, 节省了 82% 的时间
    在这里插入图片描述
http://www.lryc.cn/news/161754.html

相关文章:

  • React 与 TS 结合使用时组件传参总结
  • 性能炸裂c++20协程+iocp/epoll,超轻量高性能异步库开发实战
  • 自定义Dynamics 365实施和发布业务解决方案 - 4. 自动化业务流程
  • Lua03——开发环境搭建
  • Redis 非关系型数据库 配置与优化
  • docker笔记8:Docker网络
  • C# 共享项目的应用
  • Linux之基于HTTPS的静态网站
  • ChatGPT在机器人护理和老年人支持中的潜在角色如何?
  • LeetCode:261. 以图判树 - Python
  • Linux目录结构和远程使用
  • 淘宝销量展示方式变更背后的逻辑
  • Bytebase 和 GitLab 签署 Technology Partner 技术合作伙伴协议
  • 杭州高职画室哪家好?如何选择高职画室?高职美术学习选哪家画室?
  • 原型模式简介
  • SpringMVC(一)
  • 树的基本概念和存储结构
  • 深圳企业制作宣传片群体定位的重要性
  • 2309亚当arsd的11.1版本
  • spring---第七篇
  • 编程要搞明白的东西(二)
  • 检索与毒害 —— 对抗人工智能供应链攻击
  • Linux 禁止用户或 IP通过 SSH 登录
  • 14.Redis 主从复制
  • 常见的图像格式介绍:RAW、RGB、YUV
  • 极简极速-Bitset (bitmap)实现考勤打卡场景
  • word如何插入图片?3种常用的方法
  • Python/C API - 模組,型別,Tuple,例外和引用計數
  • 人工智能轨道交通行业周刊-第59期(2023.9.4-9.10)
  • ASP.NET Core 中的 MVC架构