php的执行方式、执行过程与加速工具

一、php有两种执行方法

1、web服务器调用php执行。常见的有2种组合方式:apache将php安装成apache的一个模块就可以;ngnix与php的组合是通过Fastcgi来完成的。在这里了解是这么回事就好,以后会深入探讨的。

2、当成脚本的形式通过php.exe独立运行,即通过php.exe -f filename [参数] [参数] 就可以运行指定的php文件。这样的好处是比如可以通过使用 php程序+OS的定时任务 来进行数据库的备份、数据信息的统计等操作,就不用php程序员在懂shell脚本等语言去操作了,降低了php程序员的操作难度。


二、php脚本的执行过程:

1、任何程序都是需要读取到内存中执行的,php文件只是存储php源码的一个载体,真正的执行是首先读取php文件内的代码---》将代码加载到内存----》执行处理。

所有高级语言的语法,都只是给程序员的一个操作接口。最终的执行都是需要被处理成计算机可以直接使用的机器语言才可以执行的。

2、将php源代码编译成机器码的过程:

a、我们先来弄明白什么是编译语言,什么是解释语言,php是属于哪种语言?

解释型:简单的讲就是每次执行都需要源代码的语言。(PHP、TCL、shell)

编译型:会将编译结果保存起来,一次编译、多次执行。(比如:c、c++、Java)

所以很明显PHP是属于解释型语言,以后接触到的PHP代码缓存|PHP加速应用--核心都是通过保存php的编译结果文件来进行加速的。

b、解释型语言的执行过程:

I、读入源代码;

II、词法检查(分拆一个一个的单独的词)

III、语法检查(检查词是否正确、词与词直接的组合是否正确)

IV、生成可以执行的代码。(不是机器码,是叫做生成php虚拟机可以执行语言)php虚拟机叫做Xend engine zend引擎。可以在php的虚拟机zend引擎中运行的代码,称之为opcode。





PHP中4个加速、缓存扩展的区别和选用建议


折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的有eAccelerator、memcached、xcache、Alternative PHP Cache这几个缓存扩展,它们之间有什么区别?分别的作用又是什么?我们如何选择?这是本文给于大家的答案。

1、eAccelerator
eAccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存,提高了PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使PHP程序代码执效率能提高1-10倍。从文字上可以理解为:eAccelerator是PHP加速器扩展。
2、memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。从文字上可以理解为:内存缓存扩展,并且针对于集群服务器使用较多,主要用于分布式缓存,算是数据库缓存。
3、Alternative PHP Cache(APC缓存)
Alternative PHP Cache (APC缓存)是一种对PHP有效的开放源高速缓冲储存器工具,他能够缓存Opcode(目标文件)的PHP中间码。 APC的缓存分两部分:系统缓存和用户数据缓存. 系统缓存 是自动使用的,是指APC把PHP文件源码的编译结果缓存起来,然后在再次调用时先对比时间标记。如果未过期,则使用缓存代码运行。默认缓存 3600s(一小时).但是这样仍会浪费大量CPU时间.因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0).不过如果这样设置,改运PHP代码后需要restart一下您的web服务器(比如apache…).目前对APC的性能测试一般指的是这一层cache;从文字上理到:Alternative PHP Cache(APC缓存)也算是一种内存缓存扩展,算是数据库缓存扩展。
4、Xcache
是一个开源的opcode缓存器/优化器, 他能够提高服务器上的PHP性能,他通过把编译PHP后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率2到5倍, 降低服务器负载。 其实它与eAccelerator一样是PHP加速器扩展。

以上就是他们的作用与区别,简单一点就是:eAccelerator,xcache是PHP缓存扩展,memcached、APC缓存是数据库缓存扩展,一般两者只有要安装其中一个即可,不要贪多。另外,实际测试中发现当Cache数量超过一定阀值的时候,APC的性能不如Memcache。所以在扩展的选择上,本人一般会选择xcache+memcached这个组合。




几个高效PHP加速器推荐

Zend Opcache

说道Zend Opcache首先的说说Zend Optimizer+,Zend Optimizer+是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具。现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache。

Zend Opcache通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。

推荐理由:Zend Opcache是Zend亲儿子,被认为最好的PHP加速器之一,可以支持PHP 5.4/5.5(5.3及其以下版本没有测试过),PHP 5.5已经内置。

XCache

XCache是一个又快又稳定的 ​PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 linux 上)测试并支持所有现行 ​PHP 分支的最新发布版本, 如 PHP_5_1 PHP_5_2 PHP_5_3 PHP_5_4. 并完美支持线程安全/Windows. 与同类 opcode 缓存器相比更胜一筹, 比如能够快速跟进 ​PHP 版本.

推荐理由:更新速度快,最后更新(截止此文发布前)为2013-06-18,下一个版本应该可以支持PHP 5.5。

Alternative PHP Cache

Alternative PHP Cache (APC) 是一个开放自由的PHP opcode 缓存。它的目标是提供一个自由、 开放,和健全的框架用于缓存和优化PHP的中间代码。

推荐理由:方便,来自pecl的扩展,很多软件包都内置,可以用apt-get、yum等直接安装apc。版本稳定,最后更新是2012年9月。

eAccelerator

eAccelerator is a free open source PHP accelerator and optimizer for PHP. It increases the performance of PHP scripts by caching them in compiled state, so the overhead of compiling is almost completely eliminated. It also optimizes the scripts to speed up execution.

eAccelerator typically reduces server load and increases the speed of your PHP code by 1-10 times.

推荐理由:老牌站长最喜欢的PHP加速器,解决方案多,完全兼容Zend Optimizer。

我个人喜欢XCache和Zend Opcache,我的WordPress缓存优化也加入了这两个PHP opcode缓存扩展。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值