ホームページ  >  記事  >  バックエンド開発  >  PHPでは変数がメモリを占有しますか?

PHPでは変数がメモリを占有しますか?

(*-*)浩
(*-*)浩オリジナル
2019-09-06 09:42:482441ブラウズ

PHPでは変数がメモリを占有しますか?

php にデータを保存する 1 つの方法は、変更できる量です。この方法は、 メモリ内にデータを保存できるスペースを開くことです。 この空間に名前を付け、この時の空間を変数と呼ぶことができます。 この値は運用中に変更可能です

カレント空間の名前を変数名、カレント空間のデータ(8種類のデータ)を変数値と呼びます

例: (推奨学習: PHP ビデオ チュートリアル)

php バージョンは 7.2

<?php
echo memory_get_usage() , &#39;<br>&#39;;
$start = memory_get_usage();
$a = Array();
for ($i=0; $i<1000; $i++) {
$a[$i] = $i + $i;
}
$mid = memory_get_usage();
echo memory_get_usage() , &#39;<br>&#39;;
for ($i=1000; $i<2000; $i++) {
$a[$i] = $i + $i;
}
$end = memory_get_usage();
echo memory_get_usage() , &#39;<br>&#39;;
echo &#39;argv:&#39;, ($mid - $start)/1000 ,&#39;bytes&#39; , &#39;<br>&#39;;
echo &#39;argv:&#39;,($end - $mid)/1000 ,&#39;bytes&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;, ($mid - $start)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;,($end - $mid)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
输出是:
389336
418056
442632
argv:28.72bytes
argv:24.576bytes
Memory:28.046875k
Memory:24k

戻る現在の割り当て PHP スクリプトに割り当てられているメモリ量 (バイト単位)。

1000 要素の整数配列は 28k のメモリを占有し、各要素は平均 28 バイトを占有することが大まかに理解されています。

memory_get_usage() によって返される結果は、すべてが占有されるわけではありません。配列だけでなく、PHP

によって割り当てられたいくつかの構造体も含めるため、組み込み関数によって生成された配列は実空間に近い可能性があります:

<?php
$start = memory_get_usage();
$a = array_fill(0, 10000, 1);
$mid = memory_get_usage(); //10k elements array;
echo &#39;argv:&#39;, ($mid - $start )/10000,&#39;byte&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;, ($mid - $start)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
$b = array_fill(0, 10000, 1);
$end = memory_get_usage(); //10k elements array;
echo &#39;argv:&#39;, ($end - $mid)/10000 ,&#39;byte&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;,($end - $mid)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
得到:
argv:54.5792byte
argv:54.5784byte

argv:39.736byte
Memory:388.046875k
argv:39.736byte
Memory:388.046875k

整数であることが大まかに理解されています。 10,000 要素の配列は 388k のメモリを占有します。この結果から、1 つの配列要素は約 39 バイトを占有するように見えます。

以上がPHPでは変数がメモリを占有しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。