Newsgroups: php.apc.dev,php.internals Path: news.php.net Xref: news.php.net php.apc.dev:192 php.internals:43181 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 43454 invoked from network); 26 Feb 2009 16:35:36 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 Feb 2009 16:35:36 -0000 Authentication-Results: pb1.pair.com header.from=rasmus@lerdorf.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=rasmus@lerdorf.com; spf=permerror; 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:53749] helo=mail.lerdorf.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 67/F9-30584-4D4C6A94 for ; Thu, 26 Feb 2009 11:35:33 -0500 Received: from [216.145.54.7] (socks2.corp.yahoo.com [216.145.54.7]) (authenticated bits=0) by mail.lerdorf.com (8.14.3/8.14.3/Debian-6) with ESMTP id n1QGZT8X007057 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 26 Feb 2009 08:35:29 -0800 Message-ID: <49A6C4D1.2060706@lerdorf.com> Date: Thu, 26 Feb 2009 08:35:29 -0800 User-Agent: Thunderbird 2.0.0.18 (Macintosh/20081105) MIME-Version: 1.0 To: Gopal V CC: shire , PHP Internals List , apc-dev@lists.php.net References: <49A097FE.10205@tekrat.com> <49A6A82C.9030504@yahoo-inc.com> In-Reply-To: <49A6A82C.9030504@yahoo-inc.com> X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [APC-DEV] [RFC] APC/PHP Lazy Loading From: rasmus@lerdorf.com (Rasmus Lerdorf) Gopal V wrote: > shire wrote: > >> http://tekrat.com/downloads/bits/apc_lazy_php53.patch >> >> You should be able to apply the above patch to the latest PHP_5_3 >> branch, and recompile the latest APC CVS against it. Two ini settings >> enable/display lazy loading: >> >> apc.lazy_functions=On/Off >> apc.lazy_classes=On/OFf > > Awesome! Yup, I am all for the lazy loading patch as well. I don't think people really realize how much code they load that is never run. Especially all the folks with massive front controllers. >> Alternative implementations would include replacing the function >> entries with an internal function that would load the opcodes when >> called, however I found this implementation to be problematic, still >> requires changes to PHP, and would also require inserting entries into >> the function/class tables which itself ends up being an expensive task >> for extremely large codebases. > > I still haven't given up on the executor hooks. But can't argue with > code that works (yes, it works for most of my tests). > > I should finish up the RO patches in place so that we can catch stuff > being overwritten in shm without locks - reflection, xdebug and suhosin > looks like potential culprits here. I wouldn't worry about xdebug at all. We should probably just turn off the opcode cache part when xdebug is active if it is a problem. -Rasmus