我有一个Dash应用程序,它接收多个CSV文件,并创建一个用于分析和可视化的组合数据框架。通常,对于大小为600-650 MB的数据集,此计算大约需要30-35秒。我使用Flask文件系统缓存来存储这个数据帧一次,每次我请求数据时,它都来自缓存
我使用了Dash示例here中的代码
我这里有两个问题:
似乎因为缓存在文件系统中,所以获取数据帧所需的时间是第一次尝试所需时间的两倍(近70秒),然后从后续请求中快速获取。我可以使用任何其他缓存类型来避免这种开销吗
我尝试通过设置CACHE_THRESHOLD
自动清除缓存(例如,我将其设置为1),但它不起作用,我看到文件添加到目录中
示例代码:
app = dash.Dash(__name__)
cache = Cache(app.server, config={
'CACHE_TYPE' : 'filesystem',
'CACHE_DIR' : 'my-cache-directory',
'CACHE_THRESHOLD': 1
})
app.layout = app_layout
@cache.memoize()
def getDataFrame():
df = createLargeDataFrame()
return df
@app.callback(...) # Callback that uses DataFrame
def useDataFrame():
df = getDataFrame()
# Using Dataframe here
return value
有人能帮我吗?谢谢
目前没有回答
相关问题 更多 >
编程相关推荐