-----Original Message-----
From: Michael Vergoz [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 11, 2006 10:33 AM
To: Dmitry Stogov; 'Andi Gutmans'; PHPdev
Subject: Re: [PHP-DEV] FW: Help needed in benchmarking memory patch
In fact I had found some leaks it would seem that
ts_free_thread() after
php_request_shutdown() solves all the problem.
I am checking if it's bad but if not the case the SAPI ISAPI
should have a small modification.
mv-
----- Original Message -----
From: "Dmitry Stogov" <[EMAIL PROTECTED]>
To: "'Michael Vergoz'" <[EMAIL PROTECTED]>; "'Andi Gutmans'"
<[EMAIL PROTECTED]>; <internals@lists.php.net>
Sent: Tuesday, July 11, 2006 1:54 PM
Subject: RE: [PHP-DEV] FW: Help needed in benchmarking memory patch
> Hi Michael,
>
> The patch was tested in ZTS mode too.
>
> What SAPI you are talking about? (I would like to reproduce
the problem).
>
> Thanks. Dmitry.
>
>> -----Original Message-----
>> From: Michael Vergoz [mailto:[EMAIL PROTECTED]
>> Sent: Tuesday, July 11, 2006 1:22 PM
>> To: Andi Gutmans; internals@lists.php.net
>> Subject: Re: [PHP-DEV] FW: Help needed in benchmarking memory patch
>>
>>
>> Hi aAndy
>>
>> > We didn't find a material difference between malloc() and mmap()
>> > though, most probably because malloc() at these sizes
>> actually calls
>> > mmap().
>> You can have good difference with the mremap() of Linux
>> because it directly
>> changes the vector into memory without recopying these data.
>>
>> --
>> Before beginning a benchmark I would like to speak about a
>> serious problem
>> that I have with TSRM/MM.
>>
>> A S1 script carried out by thread T1 will use the same memory
>> capacity as S2
>> script by T2 whereas theoretically separation is obligatory.
>> In addition to
>> the problem of safety, that cause also a problem of
>> management of the load
>> memory of the process father.
>>
>> We define a father process P=while(1);
>>
>> When a process father starts it must initialize tsrm_startup(),
>> sapi_startup() and php_module_startup(). At this time all the
>> additional
>> functions and objects are loaded and usable by all script
>> (what is normal).
>>
>> With the creation of a thread one associates a TSRMLS to
it. Then one
>> carries out php_request_startup(), php_execute_script() and
>> php_request_shutdown() to entirely enclose PHP/Zend.
>>
>> With the execution of Sx script in Tx: the variables
>> dynamics, static and
>> constant of this one will be stored in AG(head).
>>
>> The problem comes from there. It is impossible to destroy a
>> memory which a
>> script has just used because the process father continues to
>> turn and nor
>> php_request_shutdown(), php_module_shutdown(), sapi_shutdown() and
>> tsrm_shutdown() will not be carried out AND THUS there will
>> be a mem leak
>>
>> I am very annoyed by this problem, it is necessary that I
>> find a possibility
>> to destroy these buffer.
>>
>> Michael Vergoz
>>
>> ----- Original Message -----
>> From: "Andi Gutmans" <[EMAIL PROTECTED]>
>> To: "'Michael Vergoz'" <[EMAIL PROTECTED]>;
>> <internals@lists.php.net>
>> Sent: Tuesday, July 11, 2006 8:26 AM
>> Subject: RE: [PHP-DEV] FW: Help needed in benchmarking memory patch
>>
>>
>> > Sorry I didn't make clear that only the malloc()/free()
part works.
>> > The
>> > mmap() and Win32 Allocation code is commented.
>> > We didn't find a material difference between malloc() and
>> mmap() though,
>> > most probably because malloc() at these sizes actually
calls mmap().
>> > So really most important is for some ppl to run some
>> benchmarks on this.
>> >
>> > Thx.
>> >
>> > Andi
>> >
>> >> -----Original Message-----
>> >> From: Michael Vergoz [mailto:[EMAIL PROTECTED]
>> >> Sent: Monday, July 10, 2006 5:25 PM
>> >> To: Andi Gutmans; internals@lists.php.net
>> >> Subject: Re: [PHP-DEV] FW: Help needed in benchmarking
memory patch
>> >>
>> >> Hi Andi,
>> >>
>> >> I appreciated to see this code which I must still
study. Already a
>> >> small remark it is that the system call mremap() is not
>> portable it
>> >> is available only on Linux. Then the size of the segments
>> must always
>> >> "be paginated" - normally your code is good on this level.
>> >> I think that a concept of kernel-memory and user-memory can
>> >> be very interesting to study, especially in threads
>> >> environments - that I use.
>> >>
>> >> I would continue to look at your code but now I will
sleep (04:26
>> >> pm)!
>> >>
>> >> mv-
>> >>
>> >> ----- Original Message -----
>> >> From: "Andi Gutmans" <[EMAIL PROTECTED]>
>> >> To: "'Andi Gutmans'" <[EMAIL PROTECTED]>; <internals@lists.php.net>
>> >> Sent: Monday, July 10, 2006 5:57 PM
>> >> Subject: RE: [PHP-DEV] FW: Help needed in benchmarking
memory patch
>> >>
>> >>
>> >> > No help??? Come on guys. I'm sure some of you can spare a
>> >> few idle cycles
>> >> > :)
>> >> >
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: Andi Gutmans [mailto:[EMAIL PROTECTED]
>> >> >> Sent: Friday, July 07, 2006 8:38 PM
>> >> >> To: internals@lists.php.net
>> >> >> Subject: [PHP-DEV] FW: Help needed in benchmarking
memory patch
>> >> >>
>> >> >> Sending 3rd time this time without the attachment.
>> >> >> You can get the diff at http://gutmans.org/alloc.zip
>> >> >>
>> >> >>
>> >> >> -----Original Message-----
>> >> >> From: Andi Gutmans [mailto:[EMAIL PROTECTED]
>> >> >> Sent: Thursday, July 06, 2006 11:06 PM
>> >> >> To: 'internals@lists.php.net'
>> >> >> Subject: Help needed in benchmarking memory patch
>> >> >>
>> >> >> Hi all,
>> >> >>
>> >> >> Attached is a patch we've been working on to improve
the memory
>> >> >> management of PHP. This patch's main advantage is
reducing the
>> >> >> memory footprint of PHP, and therefore allowing it to scale
>> >> >> better. Although at low concurrencies the change seems to be
>> >> >> negligble, while testing at higher concurrencies we saw
>> >> >> significant improvement with this patch, mainly due to lower
>> >> >> memory usage.
>> >> >>
>> >> >> We would very much appreciate if people here tested
>> this patch and
>> >> >> send in their results. It would help us understand if
>> others are
>> >> >> getting consistent results with ours, and also see
>> whether there
>> >> >> are any additional improvements we should make.
>> >> >>
>> >> >> This patch should apply cleanly to the PHP 5.2 CVS
>> tree. There's
>> >> >> not much tuning that needs to be done. It uses
>> >> >> malloc() to allocate large memory blocks. You can
>> control the size
>> >> >> of these blocks by setting the ZEND_MM_SEG_SIZE environment
>> >> >> variable before starting Apache/PHP. You may use K
or M to play
>> >> >> around with the block size. The default we are using is 256KB
>> >> >> which seems to be a good balance.
>> >> >>
>> >> >> Any feedback would be appreciated!
>> >> >>
>> >> >> Andi
>> >> >>
>> >> >> --
>> >> >> PHP Internals - PHP Runtime Development Mailing List To
>> >> >> unsubscribe, visit: http://www.php.net/unsub.php
>> >> >>
>> >> >
>> >> > --
>> >> > PHP Internals - PHP Runtime Development Mailing List
>> >> > To unsubscribe, visit: http://www.php.net/unsub.php
>> >> >
>> >> >
>> >>
>> >
>> >
>>
>> --
>> PHP Internals - PHP Runtime Development Mailing List
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>