关于cache缓存构建传递问题

性能
标签: #<Tag:0x00007fc06563f4c0>

(matrixreloaded) #1



自己构建一个传到M.trade.v1里面遇到了问题,需要加上取消缓存的选项,但是这个毕竟对性能有影响,故想问一下实现cache构建的方法,还是希望能够用上cache。

谢谢


[功能需求] 模块缓存支持Outputs类型的参数数据
(matrixreloaded) #2

m_cached = False,

加上这个错误消失,但是这个没有利用上cache。如何封装?
主要需要传入的是一个dataframe,一个list


(小Q) #3

不知道理解题意是否有问题哈。
如果你要使用缓存,应该设置为:m_cache = True。
同时,options字典构建是不是有点问题:

options={'hold_days': conf.hold_days,
'model_id':m5.model_id,
'predictions':output.predictions
}

如果有问题,我们再交流!


(matrixreloaded) #4

使用缓存,用m_cache等于真,就出上面截屏的问题了。必须是False才能顺利运行。


(matrixreloaded) #5

就像图中的问题,我的问题是_cache_key_encoder这个东西到底支持哪些类型呢?如果必须自己造类型的话,应该如何构造使之符合这个encoder的要求呢??
我的意思是,你们自身如何包装的使之有cache功能呢?


(matrixreloaded) #6
  1. 我的意思是,能不能有个包装cache的例子?

  2. 文档中对Outputs输出类似也没有文档描述,虽然很多函数输出都是Outputs类型的

  3. 文档之间跳转能不能有文档内链接?也就是像MySQL等其他文档一样,在内部的函数中有链接的跳转?比如所有文档里面有提到有Outputs类型的,就会点击跳转到Outputs文档里面去了。当然这个只是锦上添花哈。只是想到,但是因为有搜索,也功能,所以不是很重要。。


(brantyz) #7

你好,缓存的问题,刚好我们正在优化。目前正在增加新的类型数据进去。对Outputs类型的缓存会加进去的。目前DataSource类型和DataFrame类型是支持的。你可以把DataFrame数据写入到DataSource通过DataSource.write_df方法,然后把DataSource传入到参数里。这样缓存处理速度最快。


(matrixreloaded) #8

收到,多谢。:slightly_smiling_face:


(brantyz) #9

一个DataSource实例只能写入一次文件,每个DataSoure的id都是随机生成的。
如果把同一个DataFrame多次写入到DataSource中,会产生不同的DataSource,id是不同的。
缓存会认为传入了不同参数。