php程序提速原理分析

原贴:http://www.paitoubing.cn/blog/tag/apc
php程序提速原理分析

2008年7月19日
没有评论

关键词:xCache,Zend Accelerator,memcahced,xdebug,Zend Optimizer,APC.

缓冲层级别的优化

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 度量之后 —— 而不是之前 —— 您可以优化代码来调整算法、减少瓶颈并减轻过多的内存使用。

你可能感兴趣的:(PHP,memcached,Zend,OpenSource,Parsing,compilation)