| 订阅 | 在线投稿
分享
 
 
 

PHP的语言层面的优化和代码优化

2008-12-22 08:09:08 编辑來源:互联网 国际版 评论
 
 
  大规模的系统开发中,Cache无疑是至关重要的,php世界里,虽然不如java当中,有那么丰富的cache解决方案可以选择,但是,仍然有一些成熟的方案,从《advanced PHP programming》中我就学到了如下一些:

  1、语言层面的优化:php具有不少引擎(engine)层面的api,通过这些api,可以改变引擎执行的行为,从而达到优化运行的目的。其中,最值得 去做的就是对编译结果cache。众所周知,php每次执行都需要经历源代码–〉编译–〉中间代码–〉引擎执行 这样的过程,对于一些大型应用,相当多的时间花费在无益的编译上了(不仅仅是访问页面的php文件需要经过编译环节,当脚本中利用require(), include()包含的一些文件都需要经过编译)。通过对编译结果的cache,能够极大地提高系统的性能(和系统复杂性、规模成正比) 。

  php世界中三个主流的能够实现编译cache的工具是:

  The Zend Accelerator—A commercial, closed-source, for-cost compiler cache produced by Zend Industries

  The ionCube Accelerator—A commercial, closed-source, but free compiler cache written by Nick Lindridge and distributed by his company, ionCube

  APC—A free and open-source compiler cache written by Daniel Cowgill and George Schlossnagle

  APC的安装方法,APC包含在PECL中,具体安装如下 190-823 190-802 :

  运行命令

  #pear install apc

  之后,在php.ini文件中添加:

  extension = /path/to/apc.so

  这样,就完成了安装,当下次运行php,APC就会自动激活,将编译结果放入共享内存中cache起来,下次再执行的时候就直接从内存中获取编辑结果执行,不需要再次编译。

  疑问:对于自上次编译后变动了的php,APC是否能够自动重新编译?

  2、php代码优化:利用一些工具能够市的编译后产生优质中间代码,具体如下:

  The Zend Optimizer is a closed-source but freely available optimizer.

  The ionCube accelerator contains an integrated optimizer.

  proof-of-concept optimizer in PEAR.

  优化器主要的功能:

  1、清除无用的代码,例如永远也不会执行的死代码。

  2、常量的计算,例如将$seconds_in_day = 24*60*60直接变为$seconds_in_day = 86400;

  3、其它代码优化功能,例如有这么一个语句:

  $count++;

  会优化为++$count,使得执行速度更快。 当然,如果语句是$i = $count++;则不会进行优化
 
 
大规模的系统开发中,Cache无疑是至关重要的,php世界里,虽然不如java当中,有那么丰富的cache解决方案可以选择,但是,仍然有一些成熟的方案,从《advanced PHP programming》中我就学到了如下一些: 1、语言层面的优化:php具有不少引擎(engine)层面的api,通过这些api,可以改变引擎执行的行为,从而达到优化运行的目的。其中,最值得 去做的就是对编译结果cache。众所周知,php每次执行都需要经历源代码–〉编译–〉中间代码–〉引擎执行 这样的过程,对于一些大型应用,相当多的时间花费在无益的编译上了(不仅仅是访问页面的php文件需要经过编译环节,当脚本中利用require(), include()包含的一些文件都需要经过编译)。通过对编译结果的cache,能够极大地提高系统的性能(和系统复杂性、规模成正比) 。 php世界中三个主流的能够实现编译cache的工具是: The Zend Accelerator—A commercial, closed-source, for-cost compiler cache produced by Zend Industries The ionCube Accelerator—A commercial, closed-source, but free compiler cache written by Nick Lindridge and distributed by his company, ionCube APC—A free and open-source compiler cache written by Daniel Cowgill and George Schlossnagle APC的安装方法,APC包含在PECL中,具体安装如下 190-823 190-802 : 运行命令 #pear install apc 之后,在php.ini文件中添加: extension = /path/to/apc.so 这样,就完成了安装,当下次运行php,APC就会自动激活,将编译结果放入共享内存中cache起来,下次再执行的时候就直接从内存中获取编辑结果执行,不需要再次编译。 疑问:对于自上次编译后变动了的php,APC是否能够自动重新编译? 2、php代码优化:利用一些工具能够市的编译后产生优质中间代码,具体如下: The Zend Optimizer is a closed-source but freely available optimizer. The ionCube accelerator contains an integrated optimizer. proof-of-concept optimizer in PEAR. 优化器主要的功能: 1、清除无用的代码,例如永远也不会执行的死代码。 2、常量的计算,例如将$seconds_in_day = 24*60*60直接变为$seconds_in_day = 86400; 3、其它代码优化功能,例如有这么一个语句: $count++; 会优化为++$count,使得执行速度更快。 当然,如果语句是$i = $count++;则不会进行优化
󰈣󰈤
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

网络安全治理:国家安全保障的主要方向是打击犯罪,而不是处置和惩罚受害者

来源:中国青年报 新的攻击方法不断涌现,黑客几乎永远占据网络攻击的上风,我们不可能通过技术手段杜绝网络攻击。国家安全保障的主要方向是打击犯罪,而不是处置和惩罚...

 
 
 
>>返回首页<<
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 
 热帖排行
 
清纯得让人窒息(7)
清纯得让人窒息(6)
天泽海韵宣传片
赣州文庙
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
©2005- 王朝网络 版权所有