アプリ版:「スタンプのみでお礼する」機能のリリースについて

NTFSでは1つのフォルダに約42億個のファイルを保存できるそうですが、ファイル数が多くなるほどアクセスが遅くなるといったことはありますか?

エクスプローラでファイル一覧を取得するような処理は重くなりますが、ファイルのパスを直接指定して開く場合でも影響があるのか知りたいです。

OSはWindows 7です。よろしくお願いします。

A 回答 (3件)

NTFSはファイル管理をB+木で行っていますが、


この構造で特定ファイルの検索(アクセス)にかかる時間のオーダーは
O(log n) になります。

これはファイル数が増えてもアクセス時間はほとんど増えないと言うことですが、
それでもまったく増えないわけではないので差が出ているのではないでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
参考になります。B+木について調べてみようと思います。

お礼日時:2012/02/12 00:42

理論上はなりますね.



体感できるかどうかは別として.

この回答への補足

ファイル数が10個のフォルダと100万個のフォルダでアクセス速度を測定してみると、後者のほうが0.03秒ほど遅くなりました。
何回試しても後者のほうが遅かったので誤差ではないと思います。

この程度の差なら実用にはまったく問題ないのですが、この差は何が原因なのでしょうか。

補足日時:2012/02/11 15:51
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2012/02/11 15:51

エクスプローラは内部でファイル一覧を一旦取得してから表示ってやるから数が増えると遅いだけ。


プロンプトで直接指定するようなら全然大丈夫だけど アプリとかで「ファイルを開く」ダイアログとかであっても結局ファイル一覧を取得するから同じ様に遅いよ。


そうでなく?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

プロンプトではありませんがプログラムでパスを指定して開くようにしています。
ファイル一覧を取得しない処理なら大丈夫なのですね。

お礼日時:2012/02/11 15:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!