Asf PHP 開發之配置資訊常駐系統記憶體

來源:互聯網
上載者:User
這篇文章主要介紹了關於Asf PHP 開發之配置資訊常駐系統記憶體,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

傳統MVC 與 Asf 比較

傳統的MVC架構

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

Asf架構

讀取到設定檔的內容儲存到系統記憶體, 下一次請求直接去記憶體讀取資料。Asf 也提供非常簡單的配置實現 Config Cache。

什麼情境下開啟Config Cache合適?

  • 建議在Web應用情境下都開啟吧, 後面版本可能會預設啟用

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

  • 支援資料類型有: strings, arrays, integers, boolean, doubles, floats, null

流程圖

開啟緩衝方法

<?phpini_set('asf.cache_config_enable', 1); /* 開啟設定檔緩衝 */ini_set('asf.cache_config_expire', 300); /* 設定緩衝多少秒之後到期, 300 seconds by default */

架構入口方式載入php/ini設定檔

<?phpdefine('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');

讀取配置內容方法

<?phpprint_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 bytesHTML transferred:       14259994 bytesRequests 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 bytesHTML transferred:       14230000 bytesRequests 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 進程的喲, 不會有共用記憶體鎖的問題。

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.