ToB企服应用市场:ToB评测及商务社交产业平台

标题: joblib系列:自界说缓存机制参数化 [打印本页]

作者: 鼠扑    时间: 2024-8-15 02:33
标题: joblib系列:自界说缓存机制参数化
joblib系列:自界说缓存机制参数化

  1. from functools import wraps
  2. from joblib import Memory
  3. # USE_CACHE_FLAG = False  # 定义是否使用缓存的标志
  4. # 使用缓存机制
  5. USE_CACHE_FLAG = True  # 定义是否使用缓存的标志
  6. CACHE_DIR_PATH = "./joblib_cache"
  7. VERBOSE_FLAG = 0
  8. def cache_if_needed(
  9.     use_cache=True,
  10.     cache_dir_path='./joblib_cache',
  11.     verbose_flag=0
  12. ):
  13.     def decorator(func):
  14.         @wraps(func)
  15.         def wrapper(*args, **kwargs):
  16.             if use_cache:
  17.                 joblib_memory = Memory(
  18.                     location=cache_dir_path, verbose=verbose_flag
  19.                 )
  20.                 return joblib_memory.cache(func)(*args, **kwargs)
  21.             else:
  22.                 return func(*args, **kwargs)
  23.         return wrapper
  24.     return decorator
  25. @cache_if_needed(
  26.     use_cache=USE_CACHE_FLAG,
  27.     cache_dir_path=CACHE_DIR_PATH,
  28.     verbose_flag=VERBOSE_FLAG
  29. )
  30. def expensive_computation(a, b):
  31.     print("Computing expensive_computation...")
  32.     return a * b + a / b
  33. if __name__ == '__main__':
  34.    
  35.     output_with_cache = expensive_computation(1, 2)
  36.     print(f"==>> output_with_cache: {output_with_cache}")
  37.     # # 不使用缓存机制, 设置USE_CACHE_FLAG=False
  38.     # output_without_cache = expensive_computation(3, 4)
  39.     # print(f"==>> output_without_cache: {output_without_cache}")
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4