| 導購 | 订阅 | 在线投稿
分享
 
 
 

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++;則不會進行優化
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
  免責聲明:本文僅代表作者個人觀點,與王朝網絡無關。王朝網絡登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
© 2005- 王朝網路 版權所有