装饰器 统计python 函数 耗时 多进程 多线程

函数测试 耗时 装饰器

runTime.py

import datetime


def getRunTime(f):
  def x(*args, **kwargs):
    start = datetime.datetime.now()
    f(*args, **kwargs)
    end = datetime.datetime.now()
    print("{:<10} usetime: {}\n".format(f.__name__, str(end - start)))

  return x

使用 耗时测速

multiprocessmap.py

from multiprocessing import Pool
import runTime as rt

sumc = range(10000000)


def add(x):
  for i in range(10):
    x = x * i


@rt.getRunTime
def r1():
  for i in sumc:
    add(i)


@rt.getRunTime
def poolMap():
  with Pool(processes=3) as pool:
    pool.map_async(add, sumc)

    pool.close()
    pool.join()


@rt.getRunTime
def poolImap():
  with Pool(processes=8) as pool:
    pool.imap_unordered(add, sumc, 100000)
    pool.close()
    pool.join()


@rt.getRunTime
def poolImap_unordered():
  with Pool(processes=8) as pool:
    pool.imap_unordered(add, sumc, 100000)

    pool.close()
    pool.join()


if __name__ == "__main__":
  r1()
  poolMap()
  poolImap()
  poolImap_unordered()

猜你喜欢

转载自blog.csdn.net/qq_43373608/article/details/108096097