Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:45288 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 75987 invoked from network); 16 Aug 2009 21:05:21 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Aug 2009 21:05:21 -0000 Authentication-Results: pb1.pair.com smtp.mail=paul.biggar@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=paul.biggar@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.208 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: paul.biggar@gmail.com X-Host-Fingerprint: 209.85.218.208 mail-bw0-f208.google.com Received: from [209.85.218.208] ([209.85.218.208:59380] helo=mail-bw0-f208.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 7B/AC-15479-094788A4 for ; Sun, 16 Aug 2009 17:05:20 -0400 Received: by bwz4 with SMTP id 4so2117219bwz.24 for ; Sun, 16 Aug 2009 14:05:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :from:date:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=FprJXEgDHtoIGgfuGxhboyetYAxSQTQMSsOw841R9Do=; b=whl077ow9pZElxcHsoJVtPb/hYHQvCSa08tEuMXEraA59nlCYDz2rgCBxoALlFk1D7 OuC5Su8zyURd0T9kCEsM4U2DEg0vVety5CPUQtkIJibSounsx/T0ELceLMKmr4tx4c4J og31j3ooaT6FPDIrnG8beZQkoWi2UEi3WsgbE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=hHNrgqMAxStJqkNhIGl72QKxN1Mhtaouekf0JlIgmOOjOXLecPs4vC84llwogLCXxu mvL0SU0Sp7IBazGC0/URfbFI7Gz7SKZmAu1xnk+HDWQD+CEXeKTqNz0yIVhPEWF/9NKY qDZpCtyeKgpBZ2rTBrDs9Co25b/9FFXTFGCeE= MIME-Version: 1.0 Received: by 10.239.130.35 with SMTP id 35mr230606hbh.31.1250456717079; Sun, 16 Aug 2009 14:05:17 -0700 (PDT) In-Reply-To: References: <465610226.20090816150239@scriptolutions.com> <1035866081.20090816155804@scriptolutions.com> <613920271.20090817005351@scriptolutions.com> Date: Sun, 16 Aug 2009 22:04:57 +0100 Message-ID: To: Tom Boutell Cc: Lothar Scholz , internals@lists.php.net Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: Re[5]: [PHP-DEV] Design of the Zend Engine's Instruction Set From: paul.biggar@gmail.com (Paul Biggar) Hi Tom, On Sun, Aug 16, 2009 at 7:16 PM, Tom Boutell wrote: > Re: the performance of PHP, if it's badly implemented, shouldn't > Quercus (a reimplementation of PHP in Java) run rings around it? > > In reality, Quercus is faster than PHP without APC, but with APC the > Quercus team themselves admit it only "roughly matches" the original > PHP in speed. Having spent a few years working on a PHP compiler (phc - phpcompiler.org), I can suggest a few reasons for this. Mostly, its hard to get fast when you have a small team. The effort involved in even making a language match the underspecified, ad-hoc nature of PHP's reference implementation is staggering. Roadsend seem to have the same problem. Secondly, all of PHP's libraries are similarly specified. They are all written using the Zend API, and there are about 5000 functions. A compelling reimplementation must reimplement large portions of this. Its no small challenge. In short, I believe the lack of great speedups from other PHP implementations (including my own) can be attributed at least partially to the implementation difficulty and under-specification of PHP the language. Paul -- Paul Biggar paul.biggar@gmail.com