缓冲层级别的优化
xCache是把 PHP 操作码缓存到内存中的 PHP 扩展中,XCache 将避免代价高昂且不必要的花费来重新编译相同的 PHP代码去交付一个页面,这一点上和Accelerator有点相似,我一直认为他们的机理是一样的,不过xCahce是开源产品[opensource].
Zend Accelerator 站在解析和执行的中间,当页面第一次被请求时,Zend 引擎解析了它,而Accelerator 把解析的映象放入内存,然后执行并把信息发送给浏览器。 好像也叫Zend Cache。
Memcache 守护程序 (memcached) 是一种高性能分布式对象缓存。memcached的安装位置介于应用程序与数据存储之间,它将把对象保存在 RAM中。每次缓存命中将替换到数据库服务器的一次往返,使应用程序运行得更快。非常适合访问量大的网站使用。
APC 它对php opcode进行缓冲,而不是迫使php在每一次执行的时候都重新解释每一个脚本.
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的执行速度。
优化代码级别
Zend Optimizer就要对PHP 源码作相应的调整,比如去掉一些PHP注释,使得代码更容易编译。
编程时级别的优化
XDebug 是类似于软件 x 光照片的内容:它将深入应用程序,揭露内部工作原理,并且揭示代码如何度过其周期。拥有了 XDebug 度量之后 —— 而不是之前 —— 您可以优化代码来调整算法、减少瓶颈并减轻过多的内存使用。