What does memory_peak_get_usage(false) really do in PHP?

Viewed 743

I think I've read all topics on stackoverflow.com about memory_get_usage() and memory_peak_get_usage() functions, but it appears that the explanations won't fit my case.

My script showed the following result:

memory peak usage (true): 2
memory peak usage (false): 0.44921112060547
memory get usage: 0.40422821044922

memory peak usage (true): 2
memory peak usage (false): 6.5214996337891
memory get usage: 1.2414016723633

memory peak usage (true): 2
memory peak usage (false): 6.5214996337891
memory get usage: 1.2413940429688

memory peak usage (true): 2
memory peak usage (false): 6.5214996337891
memory get usage: 1.2425689697266

memory peak usage (true): 2
memory peak usage (false): 6.5214996337891
memory get usage: 1.2467498779297

memory peak usage (true): 2
memory peak usage (false): 18.253067016602
memory get usage: 2.5322036743164

memory peak usage (true): 2
memory peak usage (false): 18.253067016602
memory get usage: 2.5322113037109

memory peak usage (true): 2
memory peak usage (false): 18.253067016602
memory get usage: 2.406005859375

The logs are generated by following commands, repeated sometimes through the code:

echo 'memory peak usage (true): '.(memory_get_peak_usage(true)/1024/1024).'<br>';
echo 'memory peak usage (false): '.(memory_get_peak_usage(false)/1024/1024).'<br>';
echo 'memory get usage: '.(memory_get_usage()/1024/1024).'<br><br>';

Info: For the last log i had set some variables to null and i think they are freed by garbage collector and because that the memory get usage lowered to 2.40 from 2.53.

My question is: WTH is happening? Why memory_get_usage() is larger than memory_get_peak_usage(true)? And why memory_get_peak_usage(false) is larger than memory_get_peak_usage(true)?

Its totally different from this thread: memory_get_peak_usage() with "real usage"

1 Answers
Related