日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php编译优化,浅析使用Turck-mmcache编译来加速、优化PHP代码

發(fā)布時間:2024/10/8 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php编译优化,浅析使用Turck-mmcache编译来加速、优化PHP代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

php_screw確實很不錯,但是只能起到加密的作用,并沒有加速和優(yōu)化的作用。

下面我們來看看:Turck MMCache它的作用是通過對php代碼的編譯來加速、優(yōu)化php代碼,我們?nèi)绻l(fā)布的php代碼是經(jīng)過編譯的,也多少能起到一些對代碼的保護作用。

下面我們對compute.php進行編譯看看前后的代碼區(qū)別,下面是compute.php的源代碼

//============用來循環(huán)計算的compute.php文件================// $a=0; $t=time(); for($i=0;$i<6000000;$i++) {$a=$a*$i;} $t1=time(); echo "

"; echo "It used:"; echo $t1-$t; echo "seconds"; ?>

下面是編譯后的compute.php文件

<?php if (!is_callable("mmcache_load") && !@dl((PHP_OS=="WINNT"||PHP_OS=="WIN32")?" TurckLoader.dll":"TurckLoader.so")) { die("This PHP script has been encoded with Turck MMcache, to run it you must install Turck MMCache or Turck Loader");} return mmcache_load('eJzz9XV2dPZwZWBiYGBgZABRzAwgoM0AAakggoODIxgozQxUwJDIqMbIyMDIiCy ZBqVtGMCmMDKzAOmSzNzUdHTdJYxqTIwMLIwYxmYiGRvACBcUBqplZGzojYbbpSvMxCARhtCmBNSjxQOTRdIahn CxJNhOLQGs7mXC5V5QkJQYAt3FwMDCBNOqwcgMC iCbAjskEQ4gy7NEobQ4NcUK7hImuJeZgJazMGkwMSBpYQeyilOT8/NSipFEQeoV7BghwQAEAM45H7Y=');?>

不難發(fā)現(xiàn),通過發(fā)布編譯后的程序,應(yīng)該可以有效的防止程序被篡改。

網(wǎng)站http://turck-mmcache.sourceforge.net/

如何獲得turck-mmcache1 可以通過它的網(wǎng)站獲得

2 從下面的網(wǎng)址下載

http://prdownloads.sourceforge.net/turck-mmcache/turck-mmcache-2.4.6.tar.gz?download

安裝1. 將下載的turck-mmcache-2.4.6.tar.gz放到/usr/local下解壓縮tar zxvf turck-mmcache-2.4.6.tar.gz

2. 進入turck-mmcache-2.4.6目錄,配置cd turck-mmcache-2.4.6 export PHP_PREFIX="/usr" $PHP_PREFIX/bin/phpize ./configure --enable-mmcache=shared --with-php-config=$PHP_PREFIX/bin/php-config

3. 編譯、安裝make make install

4. 修改/etc/apache/目錄下的php.ini文件,為了可以使用turck-mmcache。在php.ini文件里加入如下內(nèi)容:

extension="mmcache.so" mmcache.shm_size="16" mmcache.cache_dir="/tmp/mmcache" mmcache.enable="1" mmcache.optimizer="1" mmcache.check_mtime="1" mmcache.debug="0" mmcache.filter="" mmcache.shm_max="0" mmcache.shm_ttl="0" mmcache.shm_prune_period="0" mmcache.shm_only="0" mmcache.compress="1"

5. 重新啟動Apache/etc/rc.d/rc.httpd restart

通過以上5步,turck-mmcache已經(jīng)可以使用了,下面我們對加速、優(yōu)化效果進行簡單的測試。

測試

1. 編寫一個compute.php文件,來進行一個大量循環(huán)的計算,在運算前后分別取系統(tǒng)時間,最后將兩次時間相減,得出所用時間。(只是個粗略的估計)compute.php文件內(nèi)容如下

//============用來循環(huán)計算的compute.php文件================// $a=0; $t=time(); for($i=0;$i<6000000;$i++) {$a=$a*$i;} $t1=time(); echo "

"; echo "It used:"; echo $t1-$t; echo "seconds"; ?>

2. 計算一下未編譯時候所用的時間,也就是在瀏覽器里面調(diào)用我本剛剛寫的compute.php文件。需要耐心等待一會,大約30秒左右(p3 500的cpu下)

3. 為了編譯php文件方便,我們來編寫一個叫做encoder的shell來編譯php文件。<1> 首先將/usr/local/turck-mmcache-2.4.6目錄下的encoder.php文件復(fù)制到/usr/bin目錄下

cp /usr/local/turck-mmcache-2.4.6/encoder.php /usr/bin/

<2> 用vi encoder建立encoder文件,內(nèi)容如下:

#!/bin/sh clear src=$1; echo $src; src2=$src".en"; echo $src2; cp /usr/bin/encoder.php ./encoder.php php encoder.php $src -o $src2; rm encoder.php mv $src $src.bak; mv $src.en $src;

<3> 對剛編寫的shell給可執(zhí)行權(quán)限,并移動到/usr/bin目錄下

chmod +x encoder mv encoder /usr/bin/

<4> 通過encoder編譯compute.php文件,編譯后compute.php為編譯后文件,源文件被命名為compute.php.bak保存

encode compute.php

<5> 在瀏覽器里調(diào)用編譯后的compute.php文件,看看速度時候提高了?

我這里,原來要用27秒,編譯后用22秒

php_screw和turck-mmcache的區(qū)別php_screw只是單純的對php代碼加密,并沒有加速和優(yōu)化的效果。

turck-mmcache是通過對php代碼的編譯,來使php代碼解釋執(zhí)行的速度可以接近二進制代碼的速度。可以起到加速和優(yōu)化php代碼的作用。但是turck-mmcache編譯后的代碼,只是將源代碼通過一定規(guī)則變成了二進制代碼,并沒有真正的加密。

所以如果要想確保代碼的絕對安全就用php_screw,要是考慮到速度等因素,就是用turck-mmcache

總結(jié)

以上是生活随笔為你收集整理的php编译优化,浅析使用Turck-mmcache编译来加速、优化PHP代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。