0871-63333123
當前位置:首頁 > 動態 >技術文章

PHP優化

對于網站建設中的PHP優化方法:

php版本號5.2.X

1、  配置優化:

(1)     隱藏HEADER輸出的類似下面的信息

Server: PHP/5.2.9-2

X-Powered-By

修改php.ini文件里的expose_php,把On改為Off

正式生產服務器上禁用PHPINFO這個函數,在php.ini里找到

极速时时彩disable_functions = phpinfo;

2四個重要的設置控制 PHP 可使用多少系統資源

     表 1. php.ini 中與資源相關的設置

設置

描述

建議值

max_execution_time

一個腳本可使用多少 CPU 秒

30

max_input_time

一個腳本等待輸入數據的時間有多長(秒)

60

memory_limit

在被取消之前,一個腳本可使用多少內存(字節)

32M

output_buffering

數據發送給客戶機之前,有多少數據(字節)需要緩存

4096

error_reporting =E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR 將啟用足夠的日志記錄,使您發現問題,同時從腳本中消除大量無用的內容。

2、 緩存

(1)   頁面緩存。如果緩存的頁面過多的話,可以對目錄進行分級。進行緩存之前,關閉掉不必要的數據庫訪問連接。Smarty的文件緩存不是好的緩存方案,有很多不必要的開銷。

(2)       內存緩存。將數據或頁面緩存到內存中,主要可以減少磁盤的IO操作。可以使用APC或XCache的數據緩存方法。

(3)       緩存服務器。Memcache,分布式換成,方便以后擴展。

(1)       動態腳本加速

Opcode緩存,避免Opcode的重復編譯。可以使用APCXcache

 

使用這個不一定就能對性能進行大幅度的提升,它只能減少CPU的使用率和提高內存的剩余量。

(1)       APC的使用和安裝(可到下載)

下載對應PHP版本的php_apc.dll phpext目錄下

修改php.ini文件,在文件末尾添加如下配置

關閉apache的時候會報錯,可能是php_apc.dll的版本問題。唯一的問題就是這里,看來只有試試XCACHE怎么樣了?

性能的提高相當可觀。并發數增加,并發時間減少。

[APC]

extension=php_apc.dll

apc.enabled = 1            //是否啟用apc        

apc.shm_segments= 1       //為編譯器緩沖區分配的共享內存數量(建議為1)

apc.shm_size =64                //每個共享內存塊的大小, 128~256

apc.optimization= 0            //優化級別,建議值為0

apc.num_files_hint= 1000 //可能被包含或被請求的不同源文件的大致數量

apc.ttl = 0    //緩沖條目在緩沖區中允許逗留的秒數 0為永不超時建議极速时时彩7200~36000                

apc.user_ttl =3600    //只是針對每個用戶而言

apc.gc_ttl =3600          //緩存條目在垃圾回收表中能夠存在的秒數

apc.cache_by_default= On  //用于緩存和優化中間代碼,是否默認對所有文件啟用緩沖

apc.slam_defense= 0  //建議設為0 否則可能導致競爭緩存同一個文件

apc.file_update_protection= 2 //修改時間距離訪問時間小于2秒則不做緩沖

apc.enable_cli =0   //是否為CLI版本啟用APC功能,僅用于測試和調試目的才打開

apc.stat=On       //是否對文件進行檢查,不進行檢查的話,如果文件有更改都需要重啟WEB

 

 

 

(2)       XCACHE的安裝和配置

下載安裝對應版本的xcache,將php_xcache.dll拷貝到 php etc目錄下。

xcache.ini的配置拷貝到PHP.INI的最后。

修改后的參數及說明如下:

极速时时彩[xcache-common]

zend_extension_ts= php_xcache.dll   //加載xcache

极速时时彩[xcache.admin]

xcache.admin.enable_auth= On  //開啟后臺管理

xcache.admin.user= "mali"          //用戶名

xcache.admin.pass= "e10adc3949ba59abbe56e057f20f883e" //md5加密密碼

[xcache]

极速时时彩xcache.shm_scheme= "mmap"          

xcache.size =64M                //代碼緩存64M

xcache.count = 1                            //cpu 數,影響性能,適合的才好

xcache.slots = 32K                //只是個參考值,影響性能,適合的才好

xcache.ttl =3600                  //緩存項目的 ttl, 0=永久

xcache.gc_interval= 3600  //掃描過期項目的時間間隔

xcache.var_size= 0M          //對變量緩存設置,0為不啟用

xcache.var_count= 1

xcache.var_slots= 8K

xcache.var_ttl =0

xcache.var_maxttl= 0

xcache.var_gc_interval= 300

xcache.test =Off                   //僅測試用

xcache.readonly_protection= Off //只讀保護

xcache.mmap_path= "xcache" //對于 Win32 系統, xcache.mmap_path=匿名MAP名字

xcache.coredump_directory= "" //僅用于 *nix 系統

xcache.cacher =On     //緩存開關

xcache.stat = On                   //統計開關,是否檢測緩存文件

xcache.optimizer= Off        //優化器開關

[xcache.coverager]

xcache.coverager= Off

极速时时彩xcache.coveragedump_directory= ""

admin管理文件夾有問題,訪問了一次之后就無法訪問了。

報錯Fatal error极速时时彩: Call to undefined function_T() in

進行了下壓力測試,還可以。跟APC差不多。就先用這個了,起碼能正常使用

 

1、  腳本跟蹤和優化

測試腳本計算所花費的時間,也是提升性能的一個要點。

使用X_DEBUG時不錯的選擇。

(1)       X_DEBUG的配置和使用

[Xdebug]

zend_extension_ts=php_xdebug.dll    //必須以這種方式加載,否則不成功

xdebug.auto_trace=On                          //自動打開監測函數調用過程

xdebug.collect_params=On                  //打開收集函數參數的功能

xdebug.collect_return=On                    //打開收集函數返回值的功能

xdebug.trace_output_dir="c:\php5.2\Projects\xdebug"  //設定函數調用監測信息的輸出文件的路徑

xdebug.profiler_enable=on  //打開效能監測器

xdebug.profiler_output_dir="c:\php5.2\Projects\xdebug"  //設定效能監測器的路徑

配置完成后,重啟Apache,然后在輸出目錄,可以看到輸出來的文件,這些可以用記事本打開,但是很難看懂。下載WinCacheGrind.exe來查看,便一目了然了,能夠很詳細的看到各種函數的調用及執行的時間。

任何位置調用xdebug_time_index()方法都獲得腳本開始執行到該位置所花費的時間。

极速时时彩xdebug_start_code_coverage();

PHP代碼

var_dump(xdebug_get_code_coverage());

查看opcode碼。

2、  zend optimizer 加速PHP代碼

zend公司透露zend optimizer能夠提高30%左右的性能,主要是它優化編譯時的代碼。

zend optimizer 的配置,去官網下載zend optimizer 3.3。然后按照提示來進行安裝,安裝完成之后php.ini文件的末尾會自動加上如下配置,我們再添加點上去。

[Zend]

极速时时彩zend_extension_manager.optimizer_ts="d:\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"

极速时时彩zend_extension_ts="d:\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"

zend_ optimizer.encoder_loader= 0  //0為不使用對加密的代碼優化

zend_ optimizer.optimization_level= 271 //這里是優化等級,271為啟動12349過程優化

單獨測試表明,zend optimizer提升的性能不是很明顯,沒有xcache的提升的性能高。

zend optimizer xcache 聯合使用,有一定的性能提升,但是不是很大。

 

PHP優化_昆明網站建設

 

PHP優化_昆明網站建設

 

极速时时彩--极速时时彩-Welcome 极速时时彩-Welcome 极速时时彩--平台极速时时彩 极速时时彩-Welcome 极速时时彩-Welcome 三分时时彩【 DB779.COM 】 三分时时彩--平台极速时时彩 三分时时彩-Welcome 三分时时彩【 DB779.COM 】 三分时时彩【 DB779.COM 】 三分时时彩【 DB779.COM 】 三分时时彩-Welcome