Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:43307 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 51921 invoked from network); 11 Mar 2009 16:11:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Mar 2009 16:11:08 -0000 Authentication-Results: pb1.pair.com smtp.mail=rasmus@lerdorf.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=rasmus@lerdorf.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain lerdorf.com from 204.11.219.139 cause and error) X-PHP-List-Original-Sender: rasmus@lerdorf.com X-Host-Fingerprint: 204.11.219.139 mail.lerdorf.com Received: from [204.11.219.139] ([204.11.219.139:33502] helo=mail.lerdorf.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id BF/D3-56240-B92E7B94 for ; Wed, 11 Mar 2009 11:11:08 -0500 Received: from Macintosh-401.local (socks1.corp.yahoo.com [216.145.54.158]) (authenticated bits=0) by mail.lerdorf.com (8.14.3/8.14.3/Debian-9) with ESMTP id n2BGAwN0023781 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 11 Mar 2009 09:11:00 -0700 Message-ID: <49B7E291.3050807@lerdorf.com> Date: Wed, 11 Mar 2009 16:10:57 +0000 User-Agent: Thunderbird 2.0.0.18 (Macintosh/20081105) MIME-Version: 1.0 To: Dmitry Stogov CC: shire , Lukas Kahwe Smith , PHP Internals List , apc-dev@lists.php.net, Andi Gutmans , Stas Malyshev References: <49A097FE.10205@tekrat.com> <49B6AF73.2050506@tekrat.com> <49B75142.2090808@zend.com> <49B77363.4040000@tekrat.com> <49B7E092.2070004@zend.com> In-Reply-To: <49B7E092.2070004@zend.com> X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [APC-DEV] Re: [PHP-DEV] [RFC] APC/PHP Lazy Loading From: rasmus@lerdorf.com (Rasmus Lerdorf) Dmitry Stogov wrote: > Hi Shire, > > I run patched APC on a number of real-life applications and got more > than 30% speedup on XOOPS (99 req/sec instead of 60%) and 20% on > ZendFramework (41 req/sec instead of 32), however most applications > (drupal, qdig, typo3, wordpress) didn't show significant speed > difference. As was expected the patch doesn't affects PHP without APC or > with APC and lazy loading disabled. > > I also got APC warning with Zend Framewoek based blog application, but I > didn't try to look deeper. > > [Wed Mar 11 17:53:02 2009] [apc-warning] [Wed Mar 11 17:53:02 2009] > [apc-warning] apc_lookup_class_hook: could not install blogrow in > /var/www/html/bench/fw/ZendFramework-1.5.0RC3/library/Zend/Loader.php on > line 86 > > I didn't look careful into APC code, just into PHP patch and I see the > following issues: > > 1) I would prefer to add additional hash_value argument into > lookup_function_hook() and lookup_class_hook to prevent multiple > calculation. > > 2) function_exists() should use lookup_function_hook(). > > 3) interface_exists() and class_alias() should use lookup_class_hook(). > > 4) ext/soap, ext/reflection, ext/wddx and ext/spl autoload support > > Anyway, it's very good job and 20-30% speedup on some real-life > applications makes sense to include it into 5.3 (from my point of view). Makes sense to me as well, especially since I don't see any drawbacks for non-accelerated scripts. I also think some of those applications that didn't show any gains could be trivially modified to make use of it. Moving from conditionally loaded stuff to lazy-loaded is likely to speed things up. Depending of course on how granular the conditional loading is. -Rasmus