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的时候做了一个简单的数据增删改的程序,由于自己是第一次接触PHP所以在许多地方做的不到位,感觉很牵强,但是毕竟是花了时间的,所以现在贴出来。
1.完成增删查改的主页面:connsql.php
<h1>Data Insert Delete Update</h1>
<?php
//获得数据库连接
& ......
一、什么是PHP?PHP的概念和简介
PHP是一种易于学习和使用的服务器
端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程
并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。
1.简介
PH ......
ereg()
字符串比对解析。
语法: int ereg(string pattern, string string, array [regs]);
返回值: 整数/数组
函数种类: 资料处理
内容说明
本函数以 pattern 的规则来解析比对字符串 string。比对结果返回的值放在数组参数 regs 之中,regs[0] 内容就是原字符串 string、regs[1] 为第一个合乎规则的字符串、regs[2 ......
最近突发奇想,.net都有命名空间机制:
using System.data;.......,
我们在开发php时,是否也能实现这种机制呢,我们知道现在的php v5.2.9还不支持命名空间的概念,
但相关php v5.3的 资料表明 已经使用命名空间的概念 :
&nb ......
xhprof是facebook开源出来的一个php性能测试工具,也可以称之为profile工具,这个词不知道怎么翻译才比较达意。跟之前一直使用的xdebug相比,有很多类似之处。以前对xdebug有一些记录还可以供参考,但是它的缺点是对性能影响太大,即便是开启了profiler_enable_trigger参数,用在生产环境中也是惨不忍睹,cpu立刻就飙到high ......