2012-04-16 16 views
0

私は自分のPHPアプリケーション用のファイルベースのキャッシュシステムを実装しています。使用すると、同じフォルダに保存されている約200,000件のファイルを処理することができ、管理が難しくなります。フォルダの合計サイズを計算するか、内部のファイルを妥当な時間内には不可能に近づけることができます。ファイルベースのキャッシュを実装するためのベストプラクティス

私の質問は次のとおりです。ファイルを分離したフォルダに保存するとパフォーマンスが良いですか? IO時間を短縮できますか?

+1

リストを遅くするだけで、アクセス時間には影響しません。ほとんどのファイルキャッシュシステムでは、ファイル名のハッシュにツリーベースのアプローチを使用しています。これにより、ディレクトリごとのファイル数が大幅に削減されます。ファイル 'bunny.txt'(sha1' 0d9228b316d694f2cb1a9add3fb71e29e55a060a')は '0/d/9/0d9228b316d694f2cb1a9add3fb71e29e55a060a'に格納される。ツリーの深さは、あなたのニーズに合わせて調整することができます。 –

+0

[Army.mil](http://www.army.mil)のファイルキャッシュを超えて移動しましたが、どのページでもJSファイルとCSSファイルをチェックアウトすると、同じ方法でそれらを合成する方法がわかります。 @Soohjunが何を言いましたかのように見えます。 – DampeS8N

+0

私にとって最も重要なことはアクセス時間です。ほとんどの場合、操作はファイルを検索して読み込みます。 –

答えて

0

最近のファイルシステム(ext3、ntfsなど)では、1つのファイルを開くとディレクトリ内の200Kファイルが遅くなることはありません。リストは遅くなりますが、多くのディレクトリにファイルを配布してもそこには役立ちません。

関連する問題