如何确认正在使用多处理库?
How to confirm multiprocessing library is being used?
我正在尝试对以下代码使用多处理。该代码似乎 运行 比函数内的 for 循环快一点。
我如何确认我使用的是库而不是 for 循环?
from multiprocessing import Pool
from multiprocessing import cpu_count
import requests
import pandas as pd
data= pd.read_csv('~/Downloads/50kNAE000.txt.1' ,sep="\t", header=None)
data = data[0].str.strip("0 ")
lst = []
def request(x):
for i,v in x.items():
print(i)
file = requests.get(v)
lst.append(file.text)
#time.sleep(1)
if __name__ == "__main__":
pool = Pool(cpu_count())
results = pool.map(request(data))
pool.close() # 'TERM'
pool.join() # 'KILL'
多处理有开销。它必须通过进程间机制启动进程并传递函数数据。只是 运行 另一个进程中的单个函数与 运行 相同的函数通常总是会更慢。优点实际上是 并行性 在使开销最小化的函数中进行大量工作。
您可以调用 multiprocessing.current_process().name
查看进程名称更改。
我正在尝试对以下代码使用多处理。该代码似乎 运行 比函数内的 for 循环快一点。
我如何确认我使用的是库而不是 for 循环?
from multiprocessing import Pool
from multiprocessing import cpu_count
import requests
import pandas as pd
data= pd.read_csv('~/Downloads/50kNAE000.txt.1' ,sep="\t", header=None)
data = data[0].str.strip("0 ")
lst = []
def request(x):
for i,v in x.items():
print(i)
file = requests.get(v)
lst.append(file.text)
#time.sleep(1)
if __name__ == "__main__":
pool = Pool(cpu_count())
results = pool.map(request(data))
pool.close() # 'TERM'
pool.join() # 'KILL'
多处理有开销。它必须通过进程间机制启动进程并传递函数数据。只是 运行 另一个进程中的单个函数与 运行 相同的函数通常总是会更慢。优点实际上是 并行性 在使开销最小化的函数中进行大量工作。
您可以调用 multiprocessing.current_process().name
查看进程名称更改。