Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:43887 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 65534 invoked from network); 12 May 2009 01:01:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 12 May 2009 01:01:24 -0000 Authentication-Results: pb1.pair.com header.from=stas@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=stas@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 63.205.162.116 as permitted sender) X-PHP-List-Original-Sender: stas@zend.com X-Host-Fingerprint: 63.205.162.116 us-gw1.zend.com Windows 2000 SP4, XP SP1 Received: from [63.205.162.116] ([63.205.162.116:53169] helo=us-gw1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id DE/8A-05302-26AC80A4 for ; Mon, 11 May 2009 21:01:23 -0400 Received: from [192.168.16.83] ([192.168.16.83]) by us-gw1.zend.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 11 May 2009 18:01:24 -0700 Message-ID: <4A08CA5F.7010200@zend.com> Date: Mon, 11 May 2009 18:01:19 -0700 Organization: Zend Technologies User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: Paul Biggar CC: Guilherme Blanco , Dmitry Stogov , Marcus Boerger , Timm Friebe , internals@lists.php.net References: <155749706.20090117211737@marcus-boerger.de> <497872B8.60807@zend.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 12 May 2009 01:01:24.0136 (UTC) FILETIME=[2BAF0A80:01C9D29D] Subject: Re: [PHP-DEV] Method call improvements From: stas@zend.com (Stanislav Malyshev) Hi! > FWIW, since PHP has a static inheritence chain, the best approach > seems to be to build a virtual dispatch table, instead of a hashtable > for functions. However, there might be some esoteric extensions which > make this difficult. IHMO it's not static enough. I.e., since PHP is not compiled, we can not create VD table for the class until runtime inheritance, which means that the code using this class can use method resolution more efficient than name->function, i.e. hashtable. These lookups can be cached (i.e. CV style) but I don't see how they can be altogether prevented. -- Stanislav Malyshev, Zend Software Architect stas@zend.com http://www.zend.com/ (408)253-8829 MSN: stas@zend.com