Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 根据计算机容量生成的最大python进程数_Python 3.x_Multiprocessing_Cpu Usage - Fatal编程技术网

Python 3.x 根据计算机容量生成的最大python进程数

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

我有一个程序或多或少是这样工作的

在主程序中,我抓取了一些匹配项,得到一个包含所有匹配项的列表。为了从他们那里获取信息并与他们交互,我需要使用selenium打开一个浏览器,查找匹配的名称,打开它并获取其信息。如果触发了多个警告,它将在页面上执行一些操作。一旦比赛结束,整个过程就结束了

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秒。因此,理论上,我的问题更多的是在计算机开始过度减速之前,我可以打开多少进程,而不是多少进程可以同时运行