首頁 >后端開發 >php教程 > 正文

Asf PHP開發之配置信息常駐系統內存

轉載2019-11-30 18:02:260302
第十期線上培訓班
傳統MVC 與 Asf 比較

傳統的MVC框架

每次請求都會去重新加載配置文件。即使配置文件內容沒有更新, 也會去重新加載一次。這是一個很不好的設計。(開啟Opcache情況下, 還是有執行的過程時間)

Asf框架

讀取到配置文件的內容保存到系統內存, 下一次請求直接去內存讀取數據。Asf 也提供非常簡單的配置實現 Config Cache。

什么場景下開啟Config Cache合適?

● 建議在Web應用場景下都開啟吧, 后面版本可能會默認啟用

● 在CLI、多線程模式下開啟同樣生效, 只是PHP腳本每次執行完就釋放了

● 支持數據類型有: strings, arrays, integers, boolean, doubles, floats, null

流程圖

7aaa5947ddebf4cea4705dbf81808c2.png

開啟緩存方法

<?php
ini_set('asf.cache_config_enable', 1); /* 開啟配置文件緩存 */
ini_set('asf.cache_config_expire', 300); /* 設置緩存多少秒之后過期, 300 seconds by default */

框架入口方式加載php/ini配置文件

<?php
define('APP_PATH', dirname(__DIR__));
/* 緩存 config.ini 文件 */
$app = new Asf\Application(APP_PATH . '/config/config.ini');
$app->run();

Asf\Config\Php 加載php配置文件

<?php
$conf_php =  new Asf\Config\Php(CONFIG_PATH . '/config.db.php');

Asf\Config\Ini 加載ini配置文件

<?php
$conf_ini =  new Asf\Config\Ini(CONFIG_PATH . '/config.redis.ini');

讀取配置內容方法

<?php
print_r(Asf\Application::getInstance()->getConfig()->toArray());
print_r(Asf\Config::get()->toArray());

性能測試

● 在開啟 Opcache 情況下, 簡單做了一個 Config Cache 性能測試, ab -c100 -n10000

● 配置文件中配置項復雜程度與性能指標是有直線聯系的喲

開啟緩存 asf.cache_config_enable = 1

Total transferred:      16109994 bytes
HTML transferred:       14259994 bytes
Requests per second:    6859.01 [#/sec] (mean)
Time per request:       14.579 [ms] (mean)
Time per request:       0.146 [ms] (mean, across all concurrent requests)

無緩存

Total transferred:      16080000 bytes
HTML transferred:       14230000 bytes
Requests per second:    6398.22 [#/sec] (mean)
Time per request:       15.629 [ms] (mean)
Time per request:       0.156 [ms] (mean, across all concurrent requests)

提示

Cache Config 不是基于共享內存的, 是基于 PHP 進程的喲, 不會有共享內存鎖的問題。

推薦:《PHP教程

以上就是Asf PHP開發之配置信息常駐系統內存的詳細內容,更多請關注php中文網其它相關文章!

php中文網最新課程二維碼
  • 相關標簽:PHP
  • 本文轉載于:segmentfault,如有侵犯,請聯系[email protected]刪除
  • 相關文章

    相關視頻


    網友評論

    文明上網理性發言,請遵守 新聞評論服務協議

    我要評論
  • 專題推薦

    作者信息

    藏色散人

    好好學習天天向上!

    最近文章
    關于 PHP 開發中遇到的 error155
    VPN啥意思763
    怎么把ppt保存到u盤里857
    推薦視頻教程
  • 《20天入門精通PHP》視頻教程《20天入門精通PHP》視頻教程
  • phpStudy V8 視頻教程phpStudy V8 視頻教程
  • PHP文件基礎操作PHP文件基礎操作
  • PHP開發免費公益直播課PHP開發免費公益直播課
  • 視頻教程分類
    第十期線上培訓班 足彩吧合买平台