2016-10-16 23 views

答えて

1

私はあなたと同じ配慮をしました。

私は自分でテストコードを書きました。あなたはそれをチェックすることができます。

https://ideone.com/xHxTEl

は、基本的にはforループの外にあるlinecache.clearcache()を使用すると、はるかに高速にすることができますが、それははるかに消費し、同じ時間をRAMでしょう。 RAMは速度を犠牲にします。速度はと6倍速くなる可能性があります。は、for-loopで毎回キャッシュをクリアしています!

対照的に、forループでlinecache.clearcache()を使用できます。メモリは少なくても遅くなりました...

私にとって、私はfor-loopからキャッシュをクリアし、マルチスレッドを使用してファイルをブロックにチャンクします。 RAMとSWAPを拡張して、高速の準備が整うようにします。

+0

ありがとうございました! – flyingrose

+0

私が本当に気にしているのは、大きなデータをサーバーに読み書きする方法です。だから、ラインキャッシュはあまりにも信頼性が高いように思えます...分散ファイルシステムと置き換えるのはいい考えです。 – flyingrose

+0

あなたは大歓迎です。はい、 'linecache'はほとんどRAMに依存しています。私は['jsonpyes'](https://github.com/xros/jsonpyes)というプロジェクトで使っています。 'linecache'を使って大きなデータを処理するための最初のことは、データがチャンク化されているかどうかを確認することです。だから、コンピュータハードウェアをうまく​​利用するでしょう。まあ、それはあなたの要求に依存します。 – dotslash

関連する問題