C でのファイル存在チェックの最適化
ファイルの存在チェックは、特に大規模なセットを扱う場合、プログラミングにおける基本的な操作です。ファイル。 C では、このタスクにはさまざまなパフォーマンス特性を持つ複数のメソッドが存在します。
最も効率的なメソッドを決定するために、各メソッドを 100,000 回実行するテスト プログラムを使用してベンチマークが実行されました。半分は既存のファイルで、半分はファイルで実行されました。存在しないファイル。結果 (5 回の実行の平均) を以下に要約します。
Method | Time |
---|---|
ifstream | 0.485s |
FILE fopen | 0.302s |
posix access() | 0.202s |
posix stat() | 0.134s |
結果から明らかなように、posix stat() が最も速いメソッドとして浮上し、100,000 のチェックを完了するのにわずか 0.134 秒しかかかりません。このメソッドは、stat システム コールを利用して、その存在を含むファイルに関する情報を取得します。
exist 関数で posix stat() を実装するには、次のコードを使用できます:
inline bool exist(const std::string& name) { struct stat buffer; return (stat (name.c_str(), &buffer) == 0); }
posix stat() を利用すると、C プログラム内のファイルの存在を効率的に確認できます。この方法は、その速度により全体の処理時間を大幅に短縮できるため、大きなファイル セットを扱う場合に特に役立ちます。
以上がC でファイルの存在を確認する最速の方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。