Python 3.x 根据计算机容量生成的最大python进程数
我有一个程序或多或少是这样工作的 在主程序中,我抓取了一些匹配项,得到一个包含所有匹配项的列表。为了从他们那里获取信息并与他们交互,我需要使用selenium打开一个浏览器,查找匹配的名称,打开它并获取其信息。如果触发了多个警告,它将在页面上执行一些操作。一旦比赛结束,整个过程就结束了Python 3.x 根据计算机容量生成的最大python进程数,python-3.x,multiprocessing,cpu-usage,Python 3.x,Multiprocessing,Cpu Usage,我有一个程序或多或少是这样工作的 在主程序中,我抓取了一些匹配项,得到一个包含所有匹配项的列表。为了从他们那里获取信息并与他们交互,我需要使用selenium打开一个浏览器,查找匹配的名称,打开它并获取其信息。如果触发了多个警告,它将在页面上执行一些操作。一旦比赛结束,整个过程就结束了 from multiprocessing import Process browser=Webdriver.Chrome() List_of_matches=functionformatches(brows
from multiprocessing import Process
browser=Webdriver.Chrome()
List_of_matches=functionformatches(browser)
for me in list_of_matches:
p=Process(target=m_scraper,args=(me,))
p.start()
def m_scraper(me):
#Open the browser
#Go to the page and navigate to the match
#Open the match and monitor it
#If trigger is activated do something
#If the match is over return
目前,我有一个限制,因此如果列表大于10项,它会在生成10个进程后停止,但我想知道是否有某种方法可以调整该数字,以最大限度地利用PC(或VPS)。
因此,简言之,我想知道我应该根据程序正在运行的机器生成多少进程。最大限度地利用PC或de-VPS的方法是创建CPU或您正在使用的机器所具有的内核数量的进程,将列表设置为大于内核数量的数字没有任何好处,因为机器不能有超过内核数量的进程同时运行 了解您的机器有多少内核的一种方法是:
import multiprocessing as mp
num_workers = mp.cpu_count()
我不需要精确的并发性。每个浏览器可能每20秒查看一次,除非满足几个条件,否则不会超过5秒。因此,理论上,我的问题更多的是在计算机开始过度减速之前,我可以打开多少进程,而不是多少进程可以同时运行