現在の位置: ホーム> 最新記事一覧> memory_get_usage関数の一般的な使用法の詳細な説明

memory_get_usage関数の一般的な使用法の詳細な説明

gitbox 2025-05-29

PHP開発では、パフォーマンスの最適化とリソース管理が非常に重要なリンクです。ランタイム中にスクリプトがどの程度のメモリを占めるかを理解することで、開発者がタイムリーにメモリリークまたは不合理なメモリ使用量を発見し、それによりターゲットを絞った最適化を実行することができます。 PHPの組み込みメモリ_get_usage関数は、現在のスクリプトメモリ使用量を監視するための強力なツールです。この記事では、この機能の使用について詳しく説明し、実際のアプリケーションシナリオに基づいて使用スキルを習得するのに役立ちます。


1。memory_get_usage関数は何ですか?

Memory_get_usageは、現在のスクリプトで占有されているメモリバイトの数を返すためにPHPによって提供される組み込み関数です。その基本的な構文は次のとおりです。

 memory_get_usage(bool $real_usage = false): int
  • $ real_usageパラメーターはブール値であり、デフォルトでfalseになります。

  • FALSEの場合、関数はPHPによってスクリプトに適用されたメモリサイズを返します。これは、必ずしもスクリプトに割り当てられた物理メモリを意味するものではありません。

  • Trueの場合、実際にPHPスクリプトに割り当てられたメモリサイズが返されます。これは、デフォルトの返品値よりも大きい場合があります。


2。memory_get_usageの基本的な例

<?php
echo "初期メモリの使用: " . memory_get_usage() . " バイト\n";

$array = range(1, 10000);

echo "配列を作成した後のメモリ使用: " . memory_get_usage() . " バイト\n";
?>

このコードは、最初にスクリプトの初期メモリ使用量を出力し、次に10,000整数の配列を作成し、最後に現在のメモリ使用量を出力します。


3。実用的なアプリケーションシナリオ

1。メモリ消費監視

大規模なアプリケーションでは、複雑なループを実行するか、大量のデータがロードされます。タイムリーな監視メモリの使用は、メモリの疲労のためにスクリプトがクラッシュするのを防ぐことができます。

 <?php
echo "スクリプトのメモリ使用法を開始します: " . memory_get_usage() . " バイト\n";

for ($i = 0; $i < 1000; $i++) {
    $data = str_repeat("A", 10000);
    if ($i % 100 === 0) {
        echo "第 {$i} 2番目のループメモリ使用法: " . memory_get_usage() . " バイト\n";
    }
}

echo "スクリプトごとにメモリ使用を終了します: " . memory_get_usage() . " バイト\n";
?>

2。コードを最適化して、メモリ消費を削減します

キーコードセグメントの前後にMemory_Get_Usageを呼び出すことにより、メモリに対するさまざまなライティング方法またはデータ構造の影響を比較することができ、それによりターゲットの最適化を実行できます。


4。Memory_get_usageとmemory_get_peak_usageを組み合わせて、メモリピークを監視します

PHPには、同様の関数memory_get_peak_usageもあります。これは、スクリプトの実行中に使用される最大メモリピークを取得するために使用されます。また、 $ real_usageパラメーターも受け入れます。

 <?php
echo "メモリピーク値: " . memory_get_peak_usage() . " バイト\n";
?>

両方の使用を組み合わせることにより、開発者はメモリの使用をよりよく理解できます。

 <?php
echo "初期メモリ: " . memory_get_usage() . " バイト\n";

$data = [];
for ($i = 0; $i < 10000; $i++) {
    $data[] = md5($i);
}

echo "現在のメモリ: " . memory_get_usage() . " バイト\n";
echo "メモリピーク値: " . memory_get_peak_usage() . " バイト\n";
?>

5。概要

  • Memory_get_usage()は、現在のスクリプトのメモリ使用量を取得するために使用されます。

  • それを通して、メモリ消費を監視および分析し、潜在的なパフォーマンスの問題を見つけることができます。

  • memory_get_peak_usage()を使用すると、最大メモリ消費量のピークを理解できます。

  • 大規模なプロジェクトとリソースに敏感なプロジェクトでは、これら2つの機能の合理的な使用は、パフォーマンスの最適化にとって非常に重要です。


完全なコードの例を参照してください

<?php
echo "初期メモリの使用: " . memory_get_usage() . " バイト\n";

$array = range(1, 10000);

echo "配列を作成した後のメモリ使用: " . memory_get_usage() . " バイト\n";

for ($i = 0; $i < 1000; $i++) {
    $data = str_repeat("A", 10000);
    if ($i % 100 === 0) {
        echo "第 {$i} 2番目のループメモリ使用法: " . memory_get_usage() . " バイト\n";
    }
}

echo "メモリピーク値: " . memory_get_peak_usage() . " バイト\n";
?>