You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python子进程执行慢于主进程的问题排查与解决咨询

问题:多进程中Gym环境step方法执行速度慢于主进程

单进程测试代码

import gym

def run():
    env = gym.make('Pendulum-v1')
    env.reset()
    action = [1.0]
    for _ in range(1000):
        env.step(action)

性能分析结果

使用viztracer分别在主进程和multiprocessing.Process创建的子进程中对上述run()方法做性能分析,结果显示:子进程中单个step()方法的执行速度明显慢于主进程,其中numpy.ndarray.clip方法的耗时差异尤为突出:

  • 子进程中step方法执行时间:子进程step方法执行耗时
  • 主进程中step方法执行时间:主进程step方法执行耗时
  • 子进程中numpy.ndarray.clip方法执行时间:子进程numpy.clip方法执行耗时
  • 主进程中numpy.ndarray.clip方法执行时间:主进程numpy.clip方法执行耗时

运行环境

  • Python版本:3.8.11(gym版本:0.26.2)
  • 操作系统:Ubuntu 20.04.5 LTS
  • CPU:2 * XEON GOLD 6230
  • 其他测试硬件:Intel i7 9750H、i9 12900H(均存在相同问题)

多进程基准测试代码

import gym
from multiprocessing import Process

def run():
    env = gym.make('Pendulum-v1')
    env.reset()
    action = [1,0]
    for _ in range(1000):
        env.step(action)


if __name__ == "__main__":
    p = Process(target=run)
    p.start()
    p.join()
    p.close()

咨询问题

  1. 导致该问题的原因是什么?
  2. 如何解决该问题?

内容的提问来源于stack exchange,提问作者dachougui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:10:28