ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列がメモリを過剰に消費する問題の解決策_PHP チュートリアル

PHP 配列がメモリを過剰に消費する問題の解決策_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:54:291332ブラウズ

一般的に、PHP 配列のメモリ使用量はわずか 1/10 です。つまり、C 言語で 100M のメモリを持つ配列は、PHP で 1G 必要となります。

特に PHP がバックエンドサーバーとして使用されているシステムでは、過剰なメモリ消費の問題が頻繁に発生します。

これは言語の問題であるため、従来の解決策では解決がより困難です。以下は文字列による解決策です。

コード
$total = 100000;
$double = "";
for ($i = 0; $i {
$double .= Pack("d", $i + 0.1 );
}

for ($i = 0; $i {
unpack("@" . ($i * 8) . "/d", $double);

この例では、文字列を使用して double の配列を保存します。ご使用の際は開梱してください。

もちろん、これはパフォーマンスに影響します。それは具体的なニーズによって異なります。

たとえば、この場合:

10 個のアレイがあり、各アレイは 10M (約 100 万データ) なので、10 個で 100M のメモリが必要になります。

10人を同時に追加すると、メモリが大幅に不足します。

すると、10個の配列のうち、毎回同時に使用されるわけではありません。文字列として保存できます

次に、使用するときに、特定の文字列を配列に解凍します。

http://www.bkjia.com/PHPjc/364609.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/364609.html技術記事一般に、PHP 配列のメモリ使用量はわずか 1/10 です。つまり、C 言語で 100M のメモリを備えた配列は、PHP で 1G 必要となります。 特に PHP がバックエンドサーバーとして使用されているシステムでは...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。