6

PHPマニュアルには次のように書かれています:

int memory_get_peak_usage ([ bool $real_usage = false ] )

PHP スクリプトに割り当てられたメモリのピークをバイト単位で返します。

パラメーター

real_usage

システムから割り当てられたメモリの実際のサイズを取得するには、これを TRUE に設定します。設定されていないか FALSE の場合、emalloc() によって使用されるメモリのみが報告されます。

では、実際の使用量ではemalloc()ないのはなぜですか。実際のメモリ使用量はどのように計算されるのでしょうか?TRUE

StackOverflow に関するこの質問でも同じことが尋ねられますが、唯一の答えは、いくつかの割り当てを次のキロバイトに丸める以外に、計算がどのように行われるかについての詳細には触れていません。

FALSEandを使用したときに内部で何が起こっているかについて、より広範な回答はありTRUEますか?

4

1 に答える 1

3

上記のように、この質問は重複です。

ただし、さまざまな回答とコメントからの理解を要約する必要があると思います。

  • memory_get_peak_usage(false)PHP スクリプトが使用する正確なメモリを返します。PHP スクリプトのさまざまなセクションの正確なメモリ消費量を比較するために使用します。
  • memory_get_peak_usage(true)システムから PHP スクリプトに割り当てられたメモリを返します。Zend エンジンが 256KB のチャンクでメモリを割り当てるため、この値は常に高くなります。特定の PHP スクリプトがシステムに与える実際の影響を知るために使用します。

したがって、基本的には次のmemory_get_peak_usage(true)ようにmemory_get_peak_usage(false)丸められ256KBます。

于 2013-09-19T16:05:54.990 に答える