Re: Trying to find out where the memory went
| From: | David Zülke | Date: | Tue, 07 Jun 2011 19:03:07 +0000 |
| Subject: | Re: Trying to find out where the memory went | ||
| References: | 1 2 3 4 5 6 7 8 9 10 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-53174@lists.php.net to get a copy of this message | ||
144 (not 114!) bytes is for an integer; I'm not quite sure what the overheads are for arrays,
which token_get_all() produces in abundance :) An empty array seems to occupy 312 bytes of memory.
Also, strings have memory allocated in 8 byte increments as far as I know, so "1" eats up
8 bytes, and "12345678901234567" will consume 24 bytes for the raw text, not 17.
David
On 07.06.2011, at 20:26, Mike van Riel wrote:
> Am i then also correct to assume that the output of
> memory_get_peak_usage is used for determining the memory_limit?
>
> Also: after correcting with your new information (zval = 114 bytes
> instead of 68) I still have a rather large offset:
>
> 640952+2165950+114+(276697*114)+(276697*3*114)+2165950 = 131146798 =
> 125M
>
> (not trying to be picky here; I just don't understand)
>
> _If_ my calculations are correct then a zval should be approx 216 bytes
> (excluding string contents):
>
> ((244000000-640952-2165950-2165950) / 4) / 276697 = 215.9647B
>
> Mike
>
> On Tue, 2011-06-07 at 19:50 +0200, David Zülke wrote:
>> memory_get_peak_usage() is the maximum amount of memory used by the VM of PHP (but not by
>> some extensions for instance) up until the point where that function is called. So the actual memory
>> usage may be even higher IIRC. But yeah, you're basically right. I've explained in another
>> message why it might be so much more than you expected (zval overhead, basically)
>>
>> David
>
>
>
Attachment: [application/pkcs7-signature] smime.p7s
Attachment: [application/pkcs7-signature] smime.p7s