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"