-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,
yes exactly, there was no PDF attachment. Interestingly the signature was a separate attachment ... thanks - - Markus Daniel Brown wrote: > Markus, > > If for some reason the PDF attachment didn't come through to you > on the list, let me know and I'll upload it to one of my servers for > you to download and use, as well. > > On Dec 3, 2007 4:40 PM, Daniel Brown <[EMAIL PROTECTED]> wrote: >> That looks great, Andi. >> >> Thanks. >> >> >> On Dec 3, 2007 4:38 PM, Andi Gutmans <[EMAIL PROTECTED]> wrote: >>> Sorry about that. Does the attached PDFed screenshot work for you? >>> >>> Andi >>> >>> >>>> -----Original Message----- >>>> From: Daniel Brown [mailto:[EMAIL PROTECTED] >>>> Sent: Monday, December 03, 2007 1:21 PM >>>> To: Andi Gutmans >>>> Cc: internals@lists.php.net >>>> Subject: Re: [PHP-DEV] Garbage collector patch >>>> >>>> On Dec 3, 2007 4:01 PM, Andi Gutmans <[EMAIL PROTECTED]> wrote: >>>>> Hi all, >>>>> >>>>> >>>>> >>>>> Was hoping to send this off earlier but I was travelling for the >>> past >>>>> week and had very limited email access. >>>>> >>>>> As promised in the past few weeks we have spent a significant amount >>>> of >>>>> time in reviewing the garbage collector work and testing it in our >>>>> performance lab. Dmitry has been exchanging ideas and patches with >>>> David >>>>> Wang during this time. Suffice to say that as I've mentioned in the >>>>> past, memory management is an extremely sensitive piece of PHP, >>> which >>>> is >>>>> why it was important for us to review this work in great depth >>> before >>>>> committing it to the code base. >>>>> >>>>> >>>>> >>>>> The updated patch still retains the same algorithm as David's >>>> original >>>>> implementation however the data structures have been changed in >>> order >>>> to >>>>> work faster and use less memory. >>>>> >>>>> >>>>> >>>>> The revised patch has the following advantages: >>>>> - It fixes several crash bugs >>>>> >>>>> - Enhances performance by removing several unnecessary checks >>>>> - The memory overhead was reduced (from 12 to 4 bytes for each >>>>> heap-allocated zval) >>>>> - The speed of "clean" PHP code (code that doesn't create cycles) >>> was >>>>> improved >>>>> - Additional test cases were created >>>>> >>>>> The end result is a more stable and faster GC patch. That said we >>>> have >>>>> yet to find real-life applications that create significant cycles >>>> which >>>>> would benefit from this patch. In fact as you'll see from the >>> results >>>>> our tests show an increase in maximum memory use and slower >>> execution >>>>> (to be fair they are marginal). >>>>> >>>>> >>>>> >>>>> We have tested both PHP_5_3 without any patches, the original patch >>>> and >>>>> the new patch. >>>>> >>>>> >>>>> >>>>> The following table shows execution time (seconds for N requests) >>> and >>>>> slowdown. >>>>> >>>>> >>>>> >>>>> PHP_5_3 >>>>> >>>>> Original GC patch >>>>> >>>>> Current GC patch >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> slowdown >>>>> >>>>> >>>>> >>>>> slowdown >>>>> >>>>> bench >>>>> >>>>> 11,550 >>>>> >>>>> 12,310 >>>>> >>>>> 6,58% >>>>> >>>>> 12,170 >>>>> >>>>> 5,37% >>>>> >>>>> hello >>>>> >>>>> 8,781 >>>>> >>>>> 8,852 >>>>> >>>>> 0,81% >>>>> >>>>> 8,813 >>>>> >>>>> 0,36% >>>>> >>>>> xoops >>>>> >>>>> 128,500 >>>>> >>>>> 135,100 >>>>> >>>>> 5,14% >>>>> >>>>> 130,200 >>>>> >>>>> 1,32% >>>>> >>>>> static >>>>> >>>>> 18,540 >>>>> >>>>> 20,840 >>>>> >>>>> 12,41% >>>>> >>>>> 18,920 >>>>> >>>>> 2,05% >>>>> >>>>> qdig >>>>> >>>>> 29,320 >>>>> >>>>> 30,270 >>>>> >>>>> 3,24% >>>>> >>>>> 29,610 >>>>> >>>>> 0,99% >>>>> >>>>> qdig2 >>>>> >>>>> 13,960 >>>>> >>>>> 14,100 >>>>> >>>>> 1,00% >>>>> >>>>> 14,090 >>>>> >>>>> 0,93% >>>>> >>>>> The next table shows memory usage in MB and overhead >>>>> >>>>> >>>>> >>>>> PHP_5_3 >>>>> >>>>> Original GC patch >>>>> >>>>> Current GC patch >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> overhead >>>>> >>>>> >>>>> >>>>> overhead >>>>> >>>>> hello >>>>> >>>>> 13,750 >>>>> >>>>> 13,945 >>>>> >>>>> 1,42% >>>>> >>>>> 13,765 >>>>> >>>>> 0,11% >>>>> >>>>> xoops >>>>> >>>>> 18,036 >>>>> >>>>> 18,636 >>>>> >>>>> 3,33% >>>>> >>>>> 18,568 >>>>> >>>>> 2,95% >>>>> >>>>> static >>>>> >>>>> 15,300 >>>>> >>>>> 16,000 >>>>> >>>>> 4,58% >>>>> >>>>> 15,308 >>>>> >>>>> 0,05% >>>>> >>>>> qdig >>>>> >>>>> 14,820 >>>>> >>>>> 15,008 >>>>> >>>>> 1,27% >>>>> >>>>> 14,828 >>>>> >>>>> 0,05% >>>>> >>>>> qdig2 >>>>> >>>>> 14,824 >>>>> >>>>> 15,012 >>>>> >>>>> 1,27% >>>>> >>>>> 14,838 >>>>> >>>>> 0,09% >>>>> >>>>> >>>>> >>>>> To summarize the patch lead to approx. 5% slowdown and 3% memory >>>>> overhead for typical applications (as always, you mileage may vary >>>>> depending on your system's architecture and OS although my >>>> guesstimate >>>>> is that you will see even worse results in a 64bit environment). We >>>> also >>>>> tested SugarCRM to get another sanity for these results and we got >>>>> similar results. >>>>> >>>>> >>>>> >>>>> I am not quite sure where this leaves us with this patch. On one >>> hand >>>> I >>>>> think now the effort has been made it's a good thing to offer it as >>>> part >>>>> of PHP. The downside is of course some performance degradation and >>>>> possible instabilities as this patch continues to stabilize (it took >>>>> about two releases for us to stabilize the Zend Memory Manager even >>>>> after in-depth testing due to edge cases in allocation patterns and >>>>> various extensions, etc...).I'd be surprised if our team has found >>>> all >>>>> possible bugs. >>>>> >>>>> >>>>> >>>>> Personally I think the decision should be either in or out. Adding >>>> this >>>>> as a compile option is not a good idea as it would create binary >>>>> compatibility issues and would be a pain for the community. I think >>>> my >>>>> inclination is to commit the patch, not have it #ifdef'ed but always >>>>> compiled but to have the garbage collection itself turned off by >>>> default >>>>> (mainly for stability reasons. Note: the increased memory footprint >>>> and >>>>> performance loss also exists with the collection itself turned off). >>>> We >>>>> can turn it on when we're in dev for snapshots so that we iron out >>>> bugs. >>>>> That said, as you can see from the results most people and real-life >>>>> applications will be worse off than today. >>>>> >>>>> >>>>> >>>>> Thanks to David & Dmitry for working hard on this (and everyone else >>>> who >>>>> contributed). >>>>> >>>>> >>>>> >>>>> The stage is open for ideas/thoughts/suggestions J >>>>> >>>>> >>>>> Andi >>>>> >>>>> >>>> Andi, >>>> >>>> I don't know about how it worked for anyone else, but the tables >>>> didn't display properly on Gmail, so I had a hard time keeping up with >>>> the performance differences. If you have this in a separate file, >>>> could you send it to me as an attachment? I have a few real-world >>>> benchmarks I'd like to try from the angle of the shared-webhost >>>> industry (lots of users with horrible code running simultaneously, et >>>> cetera) which I'd like to compare to your notes. >>>> >>>> Thanks. >>>> >>>> -- >>>> Daniel P. Brown >>>> [office] (570-) 587-7080 Ext. 272 >>>> [mobile] (570-) 766-8107 >>>> >>>> If at first you don't succeed, stick to what you know best so that you >>>> can make enough money to pay someone else to do it for you. >> >> >> -- >> >> Daniel P. Brown >> [office] (570-) 587-7080 Ext. 272 >> [mobile] (570-) 766-8107 >> >> If at first you don't succeed, stick to what you know best so that you >> can make enough money to pay someone else to do it for you. >> > > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHVHi/1nS0RcInK9ARAp4KAKDKG2s1T4JZgPlAQJpsQsj7iVoSqACfQ9qt 2aF9QsCyV1tGU02vYInHQNU= =AUjQ -----END PGP SIGNATURE----- -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php