Python manager.dict() is very slow compared to regular dict

前端 未结 2 2183
悲&欢浪女
悲&欢浪女 2021-02-14 09:36

I have a dict to store objects:

jobs = {}
job = Job()
jobs[job.name] = job

now I want to convert it to use manager dict because I want to use m

2条回答
  •  长发绾君心
    2021-02-14 09:53

    The problem is that each insert is quite slow for some reason (117x slower on my machine), but if you update your manager.dict() with a normal dict, it will be a single and fast operation.

    jobs = {}
    job = Job()
    jobs[job.name] = job
    # insert other jobs in the normal dictionary
    
    mgr = multiprocessing.Manager()
    mgr_jobs = mgr.dict()
    mgr_jobs.update(jobs)
    

    Then use the mgr_jobs variable.

    Another option is to use the widely adopted multiprocessing.Queue class.

提交回复
热议问题