|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。encode|编译|法式 1、ZendEncode的任务道理
利用PHP的人都晓得,它是一个剧本编程东西,由它写的法式,必需以源码的模式放置在Web办事器上,所以咱们没法回护本人的源代码。并且列位都晓得任何一个剧本法式的履行效力同具有不异功效的编译好的二进制代码比拟较,它的履行效力都是对照慢的。那末如果有一个东西可以帮咱们把用php写的法式编译成二进制代码就行了,如许不仅履行效力进步了,运转速度也加速了。真如果有这么一个东西,那就是一取两得了。
恰好,方才宣布的ZendEncode就是为此而开辟的。ZendEncode可以直接将剧本编译成二进制码。有了ZendEncode,你就能够将本人写好的php法式,编译后分发给良多用户,而用不着公然本人的源法式代码。编译好的二进制代码可以被zend Optimizer通明读取,也就是说,客户只需在他的办事器上装置Zend Optimizer就能够履行由ZendEncode编译好的php法式。编译法式中包括有Zend Optimizer的局部代码,所以编译过程当中对法式代码进一步作了优化处置,这即意味着剧本的履行效力进步了。
从必定意义上讲,ZendEncode是一个“PHP编译器”。然而,它又不是一个真正意义上的编译器,真正意义上的编译器会离开本来的编译情况运转,而ZendEncode编译过的法式,还要有ZendOptimizer的撑持,就好像是编译好的java二进制代码,其要有一个JVM来运转。所以,ZendOptimizer又可以看做是php编译好代码的虚拟机。不论怎样说,就是这么一个器材,它们要经由过程互相共同利用。
今朝ZendEncode撑持的操作体系有:Solaris,Linux,FreeBSD及Windows。ZendEncode可以直接运转,你的体系中纷歧定非要装置php。
2、ZendEncode的装置 (本文以linux情况下的装置为例申明)
先去下载一个软件包吧!ZendEncode不是自在软件有,利用它要付费,并且价钱相当高。幸亏zend.com供应了一个可供试用的软件包,用户可以避免费试用30天。这个软件包可以直接从http://www.zend.com/上取得。所以,起首要到http://www.zend.com/高低载ZendEncode、ZendOptimizer软件包。其次,要下载一个受权文件,也即license。因为ZendEncode是一个受权利用的产物,所以需求用户从zend.com上请求一个license。请求卡步调以下:
要请求一个试用的license,需求向zend.com供应你正在利用的盘算机的id,也即在请求页中所要填写的host ID(实践上就是你盘算机上的网卡的MAC地址),检查盘算机ID的办法以下:从zend.com下载一个lmutil.z的法式,解压后失掉法式lmutil,运转它,会依据体系的硬件特点发生一个序列串。将些序列号填入到请求license页的hostid中,zend.com会在48小时内为用户生成一个license,下载此license文件,文件名为zendEncode.dat,它是独一可使用在你的盘算机上。
1、 将ZendEncode软件包也解紧缩在/usr/local/Zend目次下。解紧缩完成后,目次下多了一个zendenc的文件,它就是谁人“编译器”啦。
2、 将谁人license文件复制到/usr/local/Zend目次下
装置完成。
3、ZendOptimizer的装置
完成了ZendEncode的装置,才完成了一半义务,要利用编译后的php二进制代码,还要装置一个注释器-ZendOptimizer,有了它的撑持,编译后的php二进制文件才干被准确地履行。
与ZendEncode分歧,ZendOptimizer是一个收费软件,它的次要功效是减速php剧本文件的运转,据Zend.com称,有了ZendOptimizer的优化,法式的履行效力可以进步600%,经由笔者的复杂测试,履行效力切实其实是进步了很多。
装置ZendOptimizer步调以下:
1、 解紧缩zendOptimizer软件包,将zendOptimizer.so文件复制到/usr/local/Zend/lib目次中
2、 翻开/usr/local/lib/php.ini文件,在文件中到场以下两行:
zend_optimizer.optimization_level=15
zend_extension=”/usr/local/Zend/lib/ZendOptimizer.so”
3、 从头启动Apache 办事器,使以上更重生效
4、ZendEncode的利用
好了,以上筹办任务全体完成了,如今写一个复杂的php剧本,利用zendEncode编译一下,看看后果若何,好,先写一个最复杂的剧本,看看编译后的代码能不克不及履行:
#vi test.php
<? Phpinfo(); ?>
编译它:
#[root@mail Zend]# ./zendenc test.php testencode.php
Zend Encoder Unlimited (TEST DRIVE) v1.1.0 (c) Zend Technologies, 1999-2000
Licensed to: xqkred.
Compiling test.php...
Done encoding test.php.
Optimizing... Done.
Saving... Done.
好,胜利编译。不外,编译好的法式巨细较之之前要大良多。
将testencode.php复制到Web办事器的宣布目次下,在阅读器上键入http://localhost/testencode.php,哇,编译后的代码可以胜利运转了!因为咱们利用是试用版的ZendEncode,所以,在页面的最下面会呈现一个图片,申明,这是一个由ZendEncode试用软件包所发生的二进制文件。以下图所示:
购置了正式版的用户,下面的图示将不会再现。
上面再看看它的履行效力吧!,起首写一个小的盘算法式粗略估量一下:compute.php
<?
$t=time();
for( $i=0;$i<1000000;$i++) {
if(($i%20)!=0) {echo $i; echo ",";}
else { echo "<br>";}
}
$t1=time();
echo "<br>"; echo "It used:"; echo $t1-$t; echo " seconds";
?>
这个法式在履行时,取体系的工夫,完成后再取体系工夫,两个值的差即为全部法式运转所需工夫,先在没有编译的情形下履行一遍,然后用ZendEncode编译后再履行一遍。互相对照了局:没有编译的情形下,运转所需工夫均匀为19秒,编译后的代码均匀履行工夫为 9秒,看来履行效力是进步了很多。
5、注重
因为php的开辟速度很快,其版本号也更新的很快,假如你依照以上做法做了,然而,你的阅读器显示是一团乱码,那末申明,你的php和正在利用的ZendOptimizer版本不相婚配,只需从头下载响应的ZendOptimizer即可处理以上乱码成绩。别的,要注重你下载的软件包的版本,在 linux情况下,有glibc及libc之分。Redhat 6今后的版本应当下载glibc类型的软件包。 就是管理员可以编辑,删除,回复 等功能,。加入管理员功能要加入登陆系统,慢慢你会想在线添加管理员,慢慢你会让自己的作品更漂亮些,慢慢1个完整的留言板就会出来了, |
|