簡體   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