ホームページ > バックエンド開発 > PHPチュートリアル > PHP でディレクトリのサイズを効率的に計算するにはどうすればよいですか?

PHP でディレクトリのサイズを効率的に計算するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-19 12:04:03
オリジナル
285 人が閲覧しました

How Can I Efficiently Calculate a Directory's Size in PHP?

PHP でのフォルダー サイズの計算について

ディレクトリのサイズの測定は、PHP でファイル システムを管理する場合の一般的なタスクです。ただし、特定のアプローチではプロセッサの使用率が高くなる可能性があります。この記事では、PHP でディレクトリ サイズを計算するための、より最適化されたソリューションと代替案について説明します。

質問で示されている元のコードは、再帰関数、foldersize を使用して、ファイルとフォルダーを反復処理し、それらのサイズを累積します。このアプローチは機能しますが、アルゴリズムの再帰的な性質によりパフォーマンスに影響を与える可能性があります。

このプロセスを最適化するために、回答で提案されている改良された GetDirectorySize 関数は、より効率的なアプローチを採用しています。

function GetDirectorySize($path){
    $bytestotal = 0;
    $path = realpath($path);
    if($path!==false && $path!='' && file_exists($path)){
        foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS)) as $object){
            $bytestotal += $object->getSize();
        }
    }
    return $bytestotal;
}
ログイン後にコピー

この関数:

  • 有効なパスを確保するために $path を realpath に変換します。 path.
  • パスが有効であり、フォルダーが存在するかどうかを確認します。
  • RecursiveIteratorIterator を使用して、 を除くディレクトリ ツリーを反復処理します。
  • ディレクトリ内の各ファイルのサイズを累積します。

この最適化されたアプローチを使用すると、正確なディレクトリ サイズを維持しながら、プロセッサの使用量を大幅に削減できます。計算。

以上がPHP でディレクトリのサイズを効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート