3

flask-cache次のようなオブジェクト(約800MB)をキャッシュしようとしました:

@cache.memoize(50000)
def get_nmf_result():
    return NMF_Recommendation(basis_path = app.config['BASIS_PATH'],
                              coef_path = app.config['COEF_PATH'],
                              mask_path = app.config['MASK_PATH'])

しかし、(1)キャッシングにかなり時間がかかることがわかりました

(2) キャッシュしたとしても、キャッシュから読み取るにはまだかなり時間がかかります。それは、キャッシュを読み取るときに、実際にはキャッシュのcopy代わりに取得していることを意味しreferenceますか?

キャッシュの迅速な保存と読み取りについてアイデアを持っている人はいますか? ありがとう!

4

1 に答える 1

4

Flask-CacheはWerkzeugキャッシュを使用します。これは、ピクルスライブラリを使用してキャッシュ値をバイナリブロブにシリアル化するため、値を任意のバックエンドに保存できます。800MBのオブジェクトのピクルスとピクルス解除には、特に1つの大きな文字列やそのような「単純な」ものではない場合、かなりの時間がかかる可能性があります。

この時点で、使用するバックエンドと保存するデータの種類に合わせて、独自のキャッシュを作成する方がよいと思います。

于 2013-01-27T12:19:26.090 に答える