首頁 >後端開發 >php教程 >translateaccelerator 使用 eAccelerator加速PHP程式碼的目的

translateaccelerator 使用 eAccelerator加速PHP程式碼的目的

WBOY
WBOY原創
2016-07-29 08:36:381026瀏覽

使用 eAccelerator加速PHP代碼 
eAccelerator 真是個好東西(它的前身是truck-mmcache)。 
簡單來講它是一套配合PHP(支援PHP5)運作的快取系統,透過共享記憶體或磁碟檔案方式交換資料。 
它被廣為使用的是PHP原始碼「編碼」(不太貼切的稱為「加密」)和快取PHP執行的中間碼以加速。關於 eA 的安裝使用的文章已經很多而且也很詳細了,這次我想推薦的是用它輔助程式設計緩存,它提供了一組API如下: 
是一個非常便捷而又穩定的本機快取實現方式,目前這部分設計似乎只支援於共享內存,所以只能用於 Unix -Like OS 了,windows的就沒這個福氣了。
1. eaccelerator_put($key, $value, $ttl=0) 
  將 $value 以 $key 為鍵名存入快取(php4下支援對像類型,且看源碼好像zend2裡$key 為鍵名存入快取(php4下支援對象類型,看源碼好像zend2裡不支援了) ,$ttl 是這個快取的生命週期,單位是秒,省略該參數或指定為 0 表示不限時,直到伺服器重新啟動清空為止。
2. eaccelerator_get($key) 
  根據 $key 從快取中傳回對應的 eaccelerator_put() 存進去的數據,如果此快取已過期或不存在那麼回傳值是為NULL . ($key) 
  依照 $key 移除快取 
4. eaccelerator_gc() 
  移除清除所有已過期的 key  
5.  移除清除所有已過期的 key  鎖定操作,以確保多進程多執行緒操作時資料的同步。需要呼叫 eaccelerator_unlock($key) 來釋放這個鎖定或等待程式請求結束時自動釋放這個鎖定。
  例如: 
      eaccelerator_lock("count"); 
    e 6 . eaccelerator_unlock($key) 
  根據 $key 釋放鎖定 
7. eaccelerator_cache_output($key, $ ) 同 eacclerator_put) 
   For Example: 
    將 $eval_code 程式碼的執行結果快取 $ttl 秒,($ttl參數同 eacclerator_put),類似 cache_output   
9. eaccelerator_cache_page($key, $ttl=0) 
  將目前整頁快取$ttl 秒。
  For Example: 
      eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_SERVER)
    phpinfo(); 
  ?> 
10. eaccelerator_rm_page($key) 
  刪除由  eaccelerator_cache_page(🎜>  刪除由  eacceler1_cache_page()]簡單執行的快取,它的威力,注意在 cli 模式下可能無效!) 
class test_cache {
  var $pro = 'hello'; n";
  }
  function func() {
    echo ', the worldH date ('Y-m-d H:i:s', $t);
  }
}
$tt = eaccelerator_get("test_tt");
if (!$tt)
{
>  $tt = new test_cache;
  eaccelerator_put("test_tt", $tt);
  echo "no cached!
n";
  echo "no cached!
n"; br>n";
}
echo $tt->pro; 
$tt->func();
$tt->now(time() + 86400);
? >
以下是網友的留言:
------------------------------------- -------------------------------------------
showsa 回覆於: 2005-12-31 19:51:56win 也支持! http://www.arnot.info/eaccelerator/
 信天翁 回覆於:2006-01-04 17:17:37最新版 eAccelerator 0.9.4-rc1 中有個小bugbug者表現為 /var /error_log 出現大量 [warn] (32)Broken pipe: write pipe_of_death 的錯誤訊息 解決方法 修改 debug.c 檔案 ------------------------- ---------------------- /**  * 關閉偵錯系統。  */ void ea_debug_shutdown () {     fflush (F_fp);     // 源語句, 關閉檔案時未偵測文件句柄     //fclose (F_fp);    //改為     if (F_fp != stderr) fclose (F_fp) 006-01-10 22:01:21eAccelerator/truck- mmcache太恐怖了,我現在有兩個負載很高的系統,一個基於Drupal,另一個基於PostNuke,用了eAccelerator後,Drual速度提升100倍,PostNuke提升10倍,PostNuke提升比較少是因為它本身就很快.
 wangyih 回覆於:2006-04-08 10:48:11和使用squid比怎麼樣
 showsa 回覆於:2006-04-08 23:23:4444怎麼去和 squid怎麼去比不一樣的東西 squid是快取頁面運行結果 如果不是即時顯示,squid肯定強了 但是論壇之類的,squid就不行了,用eaccelerator /memcache 可以大幅提升效率
 Yarco 回復於:2006- 04-09 10:00:43但是據說和encode過的程式碼有衝突啊... 不知道現在的和zend的兼容性如何?

以上就介紹了translateaccelerator 使用 eAccelerator加速PHP程式碼的目的,包含了translateaccelerator方面的內容,希望對PHP教學有興趣的朋友有幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn