PHP编译原理解析? 400 报错
最近要给Yahoo的同事们做一个关于PHP和Apache处理请求的内部机制的讲座,刚好写了些关于Opcodes的文字,就发上来了,这个文章基于 Sara Golemon大师的《Understanding OPcode》
Opcode是一种PHP脚本编译后的中间语言,就像Java的ByteCode,或者.NET的MSL,举个例子,比如你写下了如下的PHP代码:
1
2
3
4
5
|
<?php
echo
"Hello World"
;
$a
=
1
+
1
;
echo
$a
;
?>
|
PHP执行这段代码会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend)
1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens)
2.Parsing, 将Tokens转换成简单而有意义的表达式
3.Compilation, 将表达式编译成Opocdes
4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。
题外话:现在有的Cache比如APC,可以使得PHP缓存住Opcodes,这样,每次有请求来临的时候,就不需要重复执行前面3步,从而能大幅的提高PHP的执行速度。
更多详细解析内容请查看 chenglin博客 原文地址:http://www.chenglin.name/php/105.html
原文转载鸟哥文章 :http://www.laruence.com/2008/06/18/221.html
赞+1024######php再慢也比mysql快.######这是月亮比太阳,没可比性######感觉php已经优化,臻至佳境######转载鸟哥的文章请注明出http://www.laruence.com/2008/06/18/221.html######谢谢你的说明,我已经加上了,我没找到原文链接。######不厚道,转鸟哥的,请注明,######pecl remote-info ZendOpcache
Package details:
================
Latest 7.0.3
Installed - no -
Package ZendOpcache
License PHP License
Category Caching
Summary The Zend OPcache provides faster PHP execution
through opcode caching and optimization.
Description The Zend OPcache provides faster PHP execution
through opcode caching and
optimization. It improves PHP performance by
storing precompiled script
bytecode in the shared memory. This eliminates
the stages of reading code from
the disk and compiling it on future access. In
addition, it applies a few
bytecode optimization patterns that make code
execution faster.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。