Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:40097 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 96587 invoked from network); 26 Aug 2008 20:19:16 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 Aug 2008 20:19:16 -0000 Authentication-Results: pb1.pair.com smtp.mail=quickshiftin@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=quickshiftin@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.198.236 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: quickshiftin@gmail.com X-Host-Fingerprint: 209.85.198.236 rv-out-0506.google.com Received: from [209.85.198.236] ([209.85.198.236:21715] helo=rv-out-0506.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 5A/CB-03121-14564B84 for ; Tue, 26 Aug 2008 16:19:15 -0400 Received: by rv-out-0506.google.com with SMTP id g37so2154716rvb.23 for ; Tue, 26 Aug 2008 13:19:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type:references; bh=7N43R002tad/Vtf/jiTi2v6xeci30jfVHdN/bivnXVY=; b=iRlaHhr5Mc7Bw+dW0ni7ZnYft5rmR/e8DgEgc8F4aFZ5s3VkIjcMwFAUIH8eWagqw9 VUFbSpFk71HzvyA8Nx3q2IJkE9TYW/JeOtDamM06dFOnuH7ZSTKPUjaV/6iwVr9518jt NZ4uopWZhec+gM6O/1q7KHaKLOJMWx8HBEW5A= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:references; b=DzPLByO1qmzyuryBrTD1I5ILzkx267+zk4oZ4m8RaQicnexpieP0hrMwNhIq6bPXB2 VjNCXIqUY2IddR9PDA/x8BbW/9t8mzR3BFB+5NBWsVzRpmUS9XSSuQqFn8k5C2ghBxmI OAZsT49VGZupkJ3G3MS6atRSPnM0GeUW/wGLU= Received: by 10.140.201.15 with SMTP id y15mr3107705rvf.33.1219781950888; Tue, 26 Aug 2008 13:19:10 -0700 (PDT) Received: by 10.141.70.10 with HTTP; Tue, 26 Aug 2008 13:19:10 -0700 (PDT) Message-ID: <7dd2dc0b0808261319q36a40f76iee74477858d6679b@mail.gmail.com> Date: Tue, 26 Aug 2008 14:19:10 -0600 To: "Jonathan Bond-Caron" Cc: steve , "Sebastian Bergmann" , internals@lists.php.net In-Reply-To: <002d01c9077b$4e0a9ce0$ea1fd6a0$@com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_8472_26259769.1219781950825" References: <57792e850808251040y6672e1f1ha0036f0778b7a011@mail.gmail.com> <57792e850808251528u3ede0077rd6828ff066f5e4dd@mail.gmail.com> <002d01c9077b$4e0a9ce0$ea1fd6a0$@com> Subject: Re: [PHP-DEV] TracingPHP From: quickshiftin@gmail.com ("Nathan Nobbe") ------=_Part_8472_26259769.1219781950825 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Tue, Aug 26, 2008 at 6:57 AM, Jonathan Bond-Caron wrote: > On Mon Aug 25 06:28 PM, steve wrote: > > Has anyone had success compiling PHP with LLVM? > > > > I haven't tried it, here is a good summary: > http://llvm.org/devmtg/2008-08/Lopes_PHP-JIT-InTwoDays.pdf > > In short, it is 'slower' but that seems to be without any caching of the > "bytecode" > > Bytecode is not opcode: > http://www.santosj.name/general/computers/byte-code-vs-op-code/ > > Right now, the most effective strategy to optimize php is executing opcodes > using an "opcode" cache such as APC (facebook & others use this). > > That's from my research, maybe someone can correct me here. > Isn't using something like Zend Guard (converts code into opcode) then > caching the opcodes essentially JIT? > > Even if opcode is not binary, it's still a fast intermediate form that gets > translated into machine binary, isn't that JIT? i think that depends on what happens inside of php.. since i dont know the inner workings im guessing executing opcodes is pretty much the same thing every time, that is a certain opcode correlates to some precompiled code which is feed some variables at runtime. whereas in JIT, w/ java anyway, it actually takes bytecode (precompiled by the users [in .class files]) and compiles down to binary as certain pieces of bytecode are compiled. that compiled bytecode is then availble to the jvm through the remainder of that instances lifetime. so although php executes opcodes on an, as needed basis, i think the difference is that opcode correlate to precomipled binary, whereas w/ JIT, compilation (from opcode to binary) is actually occurring at runtime. http://schmidt.devlib.org/java/jit-compilers.html -nathan ------=_Part_8472_26259769.1219781950825--