繁体   English   中英

多处理和python代码

[英]multiprocessing and python code

我的python代码执行速度太慢,我有7个处理器,而python只使用一个,我刚刚发现了multiprocessing选项,但是我不知道如何使用它,所以您可以使用此选项修改以下代码吗?

from itertools import combinations

def New5(A,C5):
    d=True
    for a in A:
        if(d==True):
            d=(a not in C5)
    return d

def refcomb10(h):
    T=[]
    C5={0}
    b=0
    C10=combinations(range(h),10)
    for S in C10:
        A=combinations(S,5)
        if(New5(A,C5)):
            A=combinations(S,5)
            for a in A:
                C5.update({a})
            T.append(S)
            b+=1
            print(b,S)
    return([T,C5])

U=refcomb10(60)

打扰一下我的英语

您可能不需要多线程来解决性能问题。 这些改进可能会更有用:

  • 删除print(b,S)
  • 如果可能A=combinations(S,5)删除第二个A=combinations(S,5)
  • 更换

      for a in A: C5.append(a) 

      C5.extend(A) 
  • 分析您的代码,也许像这样: https : //docs.python.org/2/library/profile.html 找到什么功能较慢,然后尝试使其更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM