Python 程序可以通过多进程方式提高运行速度,实现方式参考下方例子:
import multiprocessing #引入多进程
import numpy as np
import matplotlib.pyplot as plt
import os
def drow_picture(output_dir,name):
'''绘制散点图'''
#1. 数据生成
x = np.random.normal(0, 1, 10)
y = np.random.normal(0, 1, 10)
#2.画布设置:
plt.figure(figsize=(10, 10), dpi=80)
plt.subplot2grid((1,1), (0,0), facecolor='w')
#3.绘制散点图
plt.scatter(x,y, c='red', s=500)
#4.保存图片
plt.savefig(output_dir+name+'.jpg')
plt.clf()
plt.close()
if __name__ == "__main__":
output_dir="C:/Users/test/Desktop/"
os.chdir("C:/Users/test/Desktop")
cpu_core_num = multiprocessing.cpu_count() #cpu 数量
processes=int(cpu_core_num / 2) + 1 #进程数设置为cpu的一半,确保运行顺畅
pool = multiprocessing.Pool(processes)
range_list=list(range(0,processes))
output_dir="C:/Users/test/Desktop/"
for i in range_list:
'''多进程同时生成名称为i.jpg散点图 '''
pool.apply_async(drow_picture, (output_dir, str(i)))#多进程执行drow_picture
pool.close()
pool.join()
运行程序会多进程同时执行drow_picture函数,提高绘图速度。
|