0

print_r()を使用してテキストとして印刷すると、470KiBファイルを作成する多次元連想配列を想定します。問題の変数がユーザーごとに異なる場合、インスタンスごとにサーバーメモリの半分のMiBを占めると想定するのは合理的ですか?したがって、1000人のユーザーが同時にサーバーにアクセスした場合、メモリのほぼ半分のGiBが消費されますか?

ありがとう。

4

1 に答える 1

5

このトピックに関する優れた記事がIBMにあります: http ://www.ibm.com/developerworks/opensource/library/os-php-v521/

アップデート

元のページは削除されましたが、今のところJPバージョンはまだありますhttps://www.ibm.com/developerworks/jp/opensource/library/os-php-v521/

memory_get_usage()スクリプトが現在占有しているメモリの量を確認するために使用できる基本的なポイントは次のとおりです。

// This is only an example, the numbers below will differ depending on your system
echo memory_get_usage () "\ n";. // 36640
$ A = str_repeat ( "Hello", 4242);
echo memory_get_usage () "\ n";. // 57960
unset ($ a);
echo memory_get_usage () "\ n";. // 36744

また、でスクリプトのピークメモリ使用量を確認できますmemory_get_peak_usage()

あなたの質問への答えとして:print_r()テキストとフォーマットで肥大化したデータの表現です。占有メモリ自体は、の文字​​数より少なくなりますprint_r()。どのくらいデータに依存します。上記の例のように確認する必要があります。

どのような結果が得られても、スクリプトを実行するユーザーごとになります。したがって、1000人のユーザーが同時にスクリプトを要求している場合は、そのメモリが必要になります。

于 2012-04-18T01:48:11.080 に答える