<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # 如何配置 php.ini: ~~~ [opcache] ; 啟動操作碼緩存 opcache.enable=1 ; 針對支持CLI版本PHP啟動操作碼緩存 一般被用來測試和調試 opcache.enable_cli=1 ; 共享內存大小,單位為MB opcache.memory_consumption=128 ; 存儲臨時字符串緩存大小,單位為MB,PHP5.3.0以前會忽略此項配置 opcache.interned_strings_buffer=8 ; 緩存文件數最大限制,命中率不到100%,可以試著提高這個值 opcache.max_accelerated_files=4000 ; 一定時間內檢查文件的修改時間, 這里設置檢查的時間周期, 默認為 2, 單位為秒 opcache.revalidate_freq=60 ; 開啟快速停止續發事件,依賴于Zend引擎的內存管理模塊,一次釋放全部請求變量的內存,而不是依次釋放內存塊 opcache.fast_shutdown=1 ;啟用檢查 PHP 腳本存在性和可讀性的功能,無論文件是否已經被緩存,都會檢查操作碼緩存,可以提升性能。 但是如果禁用了 opcache.validate_timestamps選項, 可能存在返回過時數據的風險。 opcache.enable_file_override=1 ; 拓展庫so文件關聯加載,路徑根據個人 zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/opcache.so ~~~ NOTE: 上面列出的配置項是常用且重要的配置項,實際不止上面這些配置項 # 如何使用 實際上,對于Opcache的使用,主要體現在其提供的幾個函數: 1、opcache_get_configuration; 形式:array opcache_get_configuration(void); 獲取設置的緩存配置信息,以數組形式返回配置信息、黑名單及版本號。 2、opcache_get_status; 形式:array opcache_get_status(void); 獲取設置的緩存狀態信息。 3、opcache_invalidate; 形式:boolean opcache_invalidate (string); 該函數的作用是使得指定腳本的字節碼緩存失效。如果force 沒有設置或者傳入的是 FALSE,那么只有當腳本的修改時間 比對應字節碼的時間更新,腳本的緩存才會失效。 4、opcache_reset; 形式:boolean opcache_reset(void); 該函數將重置整個字節碼緩存。在調用 opcache_reset() 之后,所有的腳本將會重新載入并且在下次被點擊的時候重新解析。 5、opcache_compile_file; 形式:boolean opcache_compile_file (string); 無需運行,就可以編譯并緩存腳本。 6、opcache_is_script_cached 形式:boolean opcache_is_script_cached (string); 判斷某個腳本是否已經緩存到Opcache。 # 腳本 面我編寫一個PHP腳本,囊括上面的幾個函數的封裝,這樣也方便日后對Opcache的維護和管理,具體如下: ~~~ <?php /** * 這個文件是對opcache優化器的幾個 * 函數的封裝,作為一個工具腳本使用 */ if(!extension_loaded("ZendOpcache")) { echo "You do nothave the Zend OPcache extension loaded , please open it up,then retry!"; } /** * 函數操作封裝類 * 數組形式的結果,會轉為json格式返回,不做顯示上的處理 * 這里主要處理的是影響Opcache緩存狀態的操作,對于查看 * Opcache各項指標的處理,可查看項目:opcache-status */ class OpcacheScriptModel{ private $_configuration; private $_status; function __construct() { $this->_configuration =opcache_get_configuration(); $this->_status =opcache_get_status(); } // 獲取配置信息 public function getConfigDatas(){ echo json_encode($this->_configuration); } // 獲取狀態信息 public function getStatusDatas(){ echo json_encode($this->_status); } // 指定某腳本文件字節碼緩存失效 public function invalidate($script){ return opcache_invalidate($script); } // 重置或清除整個字節碼緩存數據 public function reset() { return opcache_reset(); } // 無需運行,就可以編譯并緩存腳本 public function compile($file){ return opcache_compile_file($file); } // 判斷某個腳本是否已經緩存到Opcache public function isCached($script){ return opcache_is_script_cached($script); } } // 獲得對象 function getOpcacheDataModel(){ // 初始化對象 $dataModel = NULL; if(NULL ==$dataModel) { $dataModel = new OpcacheScriptModel(); } return $dataModel; } ?> ~~~ 上面的腳本工具比較簡單,一般可放在項目中或是單獨作為工具使用,需要時去解析編譯即可,其實下面的顯示分析開源項目,也是使用上面的API函數,只不過其將獲得數據以圖形化形式展示出來,這樣更加直觀,請繼續往下看 # 顯示分析 我們知道PHP腳本的執行機制是,解析器解析PHP腳本文件,并將其解析為字節碼數據,而Opcache優化器的作用就是緩存被解析的字節碼數據,做到直接從緩存中讀取而不需要每次都重復PHP腳本的加載和解析工作,所以對于Opcache的使用,我們一般只需要做兩件事兒: 1、使用Opcache優化器,加快PHP程序的執行速度; 2、通過Opcache各項指標參數,實時了解當前PHP程序的性能狀態; 那么,我們如何去查看和分析當前的Opcache加速效果那?答案是可以使用下Github上開源的項目:https://github.com/rlerdorf/opcache-status 將下載下來的項目放入到當前的Web服務器根目錄下,直接訪問即可,先看效果: ![](https://box.kancloud.cn/76d6f2be575c52b42a833c0edfc8f47d_604x346.png) 從上面的截圖及項目文件看出,該Opcache工具是一個簡化的GUI版本,使用它可以清楚了解和分析下面的內容: 1、緩存使用情況、剩余情況及內存浪費情況及比例; 2、緩存的keys、剩余的keys數; 3、緩存命中數以及未命中數; 4、緩存配置、狀態以及緩存捕獲腳本; 5、緩存的腳本文件,以視圖形式劃分直觀顯示; 好了,Opcache的可視化就說到這里,下面看下幾項注意點。 # 注意事項 1、不建議Xcache和Opcache同時啟用PHP優化; 因為PHP 5.5.0及后續版本已經內嵌對Opcache的支持,所以PHP意識到其重要性,相對于Xcache等第三方的PHP優化器來說,使用Opcache會是更好的選擇。另外,兩者同時存在的話,會使Opcache的緩存命中數大大降低,而且增加不必要的開銷。 2、不建議在開發過程中開啟Opcache 原因很明顯,開啟了Opcache之后,開發人員修改的內容不會立即顯示和生效,因為受到opcache.revalidate_freq=60的影響,所以建議在開發并測試之后,測試性能時再行打開測試,當然,生產環境一直都要開著Opcache了哦。 3、不建議將Opcache指標設置太大 Opcache各項指標配置大小或是否開啟,需要結合項目實際情況需求及Opcache官方建議的配置,項目的實際情況分析,可結合上面第四部分的可視化緩存信息分析調整。 4、不建議長期使用老版本的Opcache 建議及時關注Opcache官網動態,實時了解其的bugs修復,功能優化及新增功能,以便更好的將其應用在自己的項目中。 5、不建議在生產環境中,將上面介紹的開源項目放入Web服務根目錄 原因很簡單,因為這個開源項目并未做訪問的限制和安全處理,也就是說凡是可以訪問外網的用戶,只要知道了訪問地址就可以直接訪問,所以不安全。一般下,這個開源工具只是幫助可視化分析PHP的性能,通常在開發調試階段使用。如果就是想在生產環境開啟使用,那么就必須做好安全限制工作。 http://blog.csdn.net/why_2012_gogo?viewmode=contents
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看