python——joblib进行缓存记忆化-对计算结果缓存

问题场景

在前端多选框需要选取多个数据进行后端计算。
传入后端是多个数据包的对应路径。
这些数据包需要按一定顺序运行,通过一个Bag(path).get_start_time()
可以获得一个float时间值进行排序,但由于数据包的特性,这一操作很占用性能和时间,影响前端反馈和数据包运行播放。

解决

在这里插入图片描述
对应网站: link

memory = Memory(str(Path("~/.cache/apa_simulator/").expanduser()), verbose=0)

@memory.cache
def get_cached_start_time(path):
    return Bag(path).get_start_time()

仅仅需要一个注解和指定缓存的路径。
当然此处只展示了需要记忆化缓存的部分,当我根据路径获取对应start_time
的时候,缓存对应计算结果。
这样的好处:在同一批数据包中,他们传入后端的顺序可能不同(受用户选择顺序影响),对路径和对应计算结果缓存,可以避免因为顺序问题重新计算,也可以在不同数据包组合之间进行一定的效率提升。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种具有简洁语法和丰富库的编程语言,常用于数据分析和科学计算。然而,Python的解释器默认是单线程执行的,这在执行复杂计算任务时可能会导致效率问题。为了解决这个问题,可以使用joblib库来实现并行计算。 Joblib是一个Python库,它基于numpy和Python的multiprocessing模块,提供了一种简单方便的方式来进行并行计算。它的主要功能是将Python函数并行执行,并将计算结果或中间状态保存在内存中。 使用Joblib进行并行计算非常简单,只需将需要并行执行的任务封装成函数,然后使用joblib库提供的Parallel函数来执行。Parallel函数可以指定并行任务的数量,支持多线程和多进程,具体根据计算任务的特点选择。除了使用Parallel函数,还可以使用joblib库提供的其他功能,如内存映射、并行迭代器等。 使用Joblib可以大大提高计算任务的执行效率,尤其是在处理大量数据或复杂计算任务时。它有效地利用了多核处理器的并行计算能力,将计算任务分配给多个线程或进程同时执行,大大缩短了计算时间。 总之,Pythonjoblib库是一种非常有用的工具,可以方便地进行并行计算。它为Python用户提供了简单易用的接口,帮助用户充分发挥多核处理器的并行计算能力,提高程序的执行效率。无论是在科学计算、数据分析还是机器学习领域,使用joblib都能带来很大的便利和效益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值