簡體   English   中英

什么是字節碼緩存,如何在PHP中使用?

[英]What is a bytecode cache and how can I use one in PHP?

我在網上搜索並發現可以編譯PHP代碼以提高性能。 但怎么辦呢? 我可以編譯面向程序和面向對象的PHP代碼嗎?

執行PHP腳本時的基本思想分為兩步:

  • 第一:用純文本編寫的PHP代碼被編譯為操作碼
  • 然后: 執行那些操作碼


如果你有一個PHP腳本,只要它沒有被修改,操作碼將始終是相同的; 因此,每次執行腳本時進行編譯階段都會浪費CPU時間。

為了防止冗余編譯,可以使用一些操作碼緩存機制。

一旦PHP腳本被編譯為操作碼,那些將保存在RAM中 - 並在下次執行腳本時直接從內存中使用; 阻止編譯一次又一次地完成。


最常用的操作碼緩存是APC - Alternative PHP Cache

一旦安裝並正確配置了APC,您就無需在PHP代碼中修改任何內容:APC將緩存操作碼,這就是全部 - 該過程對您的應用程序完全不可見。

但怎么辦呢?

簡單。
首先,您必須進行一些分析 ,以確保代碼解析成為您站點的瓶頸,並且所有其他明顯的分析(如未優化的數據存儲,慢速算法,數據挖掘和網絡調用)都得到優化。

確定是否需要操作碼緩存的最簡單方法是將此行放在最常用頁面的最頂層

$timer_start = microtime(1);

這條線在最后:

echo "Generated in ".(round((microtime(1) - $timer_start),4))." sec.";

如果時間超過0.01 ,則首先要進行其他優化,因為您會注意到操作碼緩存沒有效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM