PHP新特性之字節碼緩存和內置服務器

Zend OPcache

1).從PHP5.0開始,內置了字節碼緩存功能,名爲Zend OPcache。由於PHP是解釋性語言,PHP解釋器執行PHP腳本時會解析PHP腳本代碼,生成一系列的Zend操做碼,而後執行字節碼,每次的HTTP請求都是這樣,會消耗不少資源,使用字節碼緩存能夠緩存預先編譯的字節碼,減小響應時間,下降系統資源的壓力。php

啓用Zend OPcache

默認狀況之下,Zend OPcache是沒有啓動的。若是是本身編譯PHP,執行的時候命令必須包含如下選項:前端

--enable-opcache複製代碼

編譯好PHP以後,還必須在php.ini文件中指定Zend OPcache的擴展路徑,以下所示:git

zend_extension=/path/to/opcache.so複製代碼

PHP編譯成功以後會當即顯示Zend OPcache擴展的文件路徑。可使用下面的命令找到這個PHP擴展的路徑github

php-config --extension-dir複製代碼

而後使用下面的代碼能夠確認該擴展運行正常web

<?php
phpinfo();複製代碼
配置Zend OPcache

推薦配置shell

opcache.validate_timestamps = 1 //在生產環境中設爲'0'
opcache.revalidate_freq = 0
opcache.memory_comsumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.fast_shutdown = 1複製代碼

能夠訪問PHP官方網站查看詳細設置。api

使用Zend OPcache

1).生產環境能夠設置opcache.validate_timestamps=0。在開發環境中須要設置爲1緩存

內置的HTTP服務器

1).啓動php -S localhost:4000 -c app/config/php.ini
2).不支持.htaccess文件。意味着不支持控制器模式。前端控制器用來轉發全部的HTTP請求,須要經過.htaccess文件或重寫規則實現。
3).可使用路由器腳本實現以上功能。可是隻支持少許的URL重寫規則php -S localhost:8000 router.php
4).判斷使用的是哪一個服務器:bash

<?php
if (php_sapi_name() === 'cli-server') {
    //php內置服務器
} else {
    // 其餘Web服務器
}複製代碼

專題系列

PHP專題系列目錄地址:github.com/xx19941215/…
PHP專題系列預計寫二十篇左右,主要總結咱們平常PHP開發中容易忽略的基礎知識和現代PHP開發中關於規範、部署、優化的一些實戰性建議,同時還有對Javascript語言特色的深刻研究。服務器

相關文章
相關標籤/搜索