问题场景
在前端多选框需要选取多个数据进行后端计算。
传入后端是多个数据包的对应路径。
这些数据包需要按一定顺序运行,通过一个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
的时候,缓存对应计算结果。
这样的好处:在同一批数据包中,他们传入后端的顺序可能不同(受用户选择顺序影响),对路径和对应计算结果缓存,可以避免因为顺序问题重新计算,也可以在不同数据包组合之间进行一定的效率提升。