<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## PHP四大加速緩存器opcache,apc,xcache,eAccelerator eAccelerator,xcache,**opcache**(5.5默認 linux下安裝php時記得加上 --enable-opcache ),apc(偏數據庫緩存,分系統和用戶緩存,不推薦5.5將棄之?)是PHP緩存擴展, memcached緩存是數據庫緩存擴展(APC比較偏向數據庫緩存的),一般兩者只有要安裝其中一個即可 注意:([詳情連接](https://www.chenweiliang.com/cwl-940.html)) 實際測試中發現當Cache數量超過一定閥值的時候,APC的性能不如Memcache opcache的性能優于其他幾個緩存器 **一般會選擇opcache+memcached|redis這個組合** ?如果儲存的量不大,tp 的file 緩存,和redis |memcached差不多。但是內存讀取肯定要快。如果存儲的值多,redis |memcached強大的i/o能力會強于 普通的文件讀寫 # [使用 OpCache 提升 PHP 5.5+ 程序性能](https://www.cnblogs.com/chunguang/p/5538093.html)(從編譯提高) 作用是將PHP代碼預編譯生成的腳本文件?`Opcode`?緩存在共享內存中供以后反復使用,從而避免了從磁盤讀取代碼再次編譯的時間消耗 省去了每次加載和解析 PHP 腳本的開銷。同時,它還應用了一些代碼優化模式,使得代碼執行更快。從而加速PHP的執行(避免重復編譯,減少 CPU 和內存開銷) ![](https://img.kancloud.cn/fa/2a/fa2ab11242283efeb687203e1c282897_815x297.png) php.ini 打開 zend\_extension="D:\\phpStudy\\php\\php-7.2.14\\ext\\php\_opcache.dll"?? ``` [opcache] zend_extension = php_opcache.dll opcache.enable = 0 opcache.memory_consumption = 128 opcache.max_accelerated_files = 10000 opcache.revalidate_freq = 60 ; Required for Moodle opcache.use_cwd = 1 opcache.validate_timestamps = 1 opcache.save_comments = 1 opcache.enable_file_override = 0 ``` >[danger] 不要在編寫調試代碼中開啟opcache,否則你會體會到你的增刪改查不能即時同步的痛苦! thinkphp的緩存: ~~~ 'TMPL_CACHE_ON' => true, // 是否開啟模板編譯緩存,設為false則每次都會重新編譯 'TMPL_CACHE_TIME' => 0, // 模板緩存有效期 0 為永久,(以數字為值,單位:秒) 'DB_FIELDS_CACHE' => true, // 啟用字段緩存 'DATA_CACHE_TIME' => 0, // 數據緩存有效期 0表示永久緩存 'DATA_CACHE_TYPE' => 'File', // 數據緩存類型,支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator ~~~ [靜態文件緩存 和S函數動態數據緩存](https://www.cnblogs.com/dee0912/p/5223923.html)(從數據層面提高) [thinkphp的靜態緩存,數據緩存,快速緩存,查詢緩存](https://www.cnblogs.com/chinalorin/p/5855386.html) ***** ### [**詳細用法**](https://beltxman.com/archives/1835.html) 配置文件在目錄:application-Common-Conf-config.php里設置默認配置項 靜態文件緩存配置格式??靜態規則是用于定義要生成的靜態文件的名稱? 建議配置在application/module/Config/config.php ~~~ // 靜態緩存配置 'HTML_CACHE_ON' => true, // 開啟靜態緩存 'HTML_CACHE_TIME' => 3600, // 全局靜態緩存有效期(秒) 'HTML_PATH' => APP_PATH . 'Html/', //設置已經生成的靜態頁保存路徑(默認HTML_PATH 即./Application/Html/) 'HTML_FILE_SUFFIX' => '.html', // 設置靜態緩存文件后綴 'HTML_CACHE_RULES' => array( // 定義靜態緩存規則 //靜態規則是用于定義要生成的靜態文件的名稱 // 對商品進行緩存 // 'Product:plist' => 'Product/plist_{id}_{pid}', // 對單個操作進行緩存 // 'Index:index' => 'Index/index', // 對Index控制器的所有操作緩存 'Index:' => 'Index/{:action}_{id}', // 對Download控制器的所有操作緩存 'Download:' => 'Download/{:action}_{id}', // 對Product控制器的所有操作緩存并設置緩存過期時間為7200秒 'Product:' => array('Product/{:action}_{id}', '7200'), 'projectorSelect'=>array('{:module}/{:controller}_{:action}',86400), '*'=>array('{$_SERVER.REQUEST_URI|md5}'), ), ~~~ 啟用靜態文件后每次都會檢查訪問的url(訪問的url定義了靜態規則)是否生成了靜態文件則訪問靜態文件否則訪問view模板文件在生成 格式: ~~~ 靜態地址分四種: Return Array( '靜態地址'=>array('靜態規則','有效期',附加規則), 'ActionName'=>array('靜態規則','靜態緩存有效期','附加規則'), //第一種 定義所有的read操作的靜態規則'read'=>array('{id}',60) 'ControllerName:'=>array('靜態規則','靜態緩存有效期','附加規則'),//第二種 定義全局的控制器靜態規則,例如定義所有的User控制器的靜態規則 'user:'=>array('User/{:action}_{id}','600') 'ControllerName:ActionName'=>array('靜態規則','靜態緩存有效期','附加規則'),//第三種 定義某個控制器的操作的靜態規則,例如,我們需要定義Blog控制器的read操作進行靜態緩存 'blog:read'=>array('{id}',0) '*'=>array('靜態規則','靜態緩存有效期','附加規則'),//第四種 定義全局的靜態緩存規則,這個屬于特殊情況下的使用,任何模塊的操作都適用 例如:'*'=>array('{$_SERVER.REQUEST_URI|md5}'), 表示根據當前的URL進行緩存。 …更多操作的靜態規則 ) ~~~ 格式的例子:[詳情參考文檔](http://document.thinkphp.cn/manual_3_2.html#html_cache) ~~~ 'read'=>array('{id}',60) #定義所有的read操作(方法)的靜態規則 其中,{id} 表示取$_GET['id'] 為靜態緩存文件名,第二個參數表示緩存60秒 'user:'=>array('User/{:action}_{id}','600')#定義所有的User控制器的靜態規則(全局的控制器靜態規則) {:action} 表示當前的操作名稱 'blog:read'=>array('{id}',0)#定義Blog控制器的read操作進行靜態緩存 'read'=>array('Think{id},{name}','60', 'md5') #即md5('Think'.$_GET['id']. ', '.$_GET['name']); 'empty:index'=>array('{module}_{:action}',0);#定義空控制器的靜態規則 'User:index'=>array('User/{:action}',0);#定義空操作的靜態規則 '*'=>array('{$_SERVER.REQUEST_URL|md5}')#全局靜態規則任何控制器和方法都適用 ~~~ 靜態文件動態生成的方法:?[方法](https://baijiahao.baidu.com/s?id=1611993886976390068&wfr=spider&for=pc) **$this->buildHtml('靜態文件', '靜態路徑','模板文件');** **參數一:靜態文件**,是指生成后的靜態文件名,文件保存路徑完整的就是:靜態路徑/靜態文件。例如靜態文件設置a/index.那么保存的路徑就是項 目路徑/Html/a/index.html(默認的靜態路徑在項目路徑的Html文件夾下,沒有可以自己創建) **參數二:靜態路徑**,上面已經說明了默認的路徑,3.0中可以在入口文件里加入參數來更改靜態路徑。 define('HTML\_PATH', './');(將靜態路徑義為網站根目錄) **參數三:模板文件**,我感覺官方這個描述是不正確的,準確的來說應該是目標模塊,就是需要生成靜態文件的模塊。格式:模塊名:操作。比如要生成Index下的a方法為靜態文件,那就是Index:a。如果為空則默認生成當前操作的靜態文件。 下面三個是等效的??: $this->buildHtml("index",'',""); $this->buildHtml("index",'',"Index:index"); $this->buildHtml("index",'',"index");
                  <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>

                              哎呀哎呀视频在线观看