従来の MVC と Asf の比較
従来の MVC フレームワーク
構成ファイルはリクエストごとに再ロードされます。設定ファイルの内容が更新されていない場合でも再読み込みされます。これは非常に悪い設計です。 (Opcache がオンになっている場合、まだ実行時間があります)
Asf フレームワーク
読み取られた設定ファイルの内容はシステム メモリに保存され、次のリクエストは直接送信されます。メモリからデータを読み取ります。 Asf は、非常に単純な構成実装 Config Cache も提供します。
構成キャッシュを有効にするのはどのようなシナリオに適していますか?
● Web アプリケーションのシナリオでは有効にすることをお勧めします。新しいバージョンでは、デフォルトで有効になる可能性があります
●● CLI およびマルチスレッド モードで有効にすると、PHP スクリプトが実行されるたびに解放される点を除き、有効になります。
# サポートされるデータ型は次のとおりです: 文字列、配列、整数、ブール値、倍精度浮動小数点数、null
フローチャート
オープン キャッシュ メソッド
<?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)
ヒント
キャッシュ構成がありません共有メモリに基づいていますが、PHP プロセスに基づいています。Yo、共有メモリ ロックについては問題ありません。 推奨: 「PHP チュートリアル 」
以上がシステムメモリに常駐する Asf PHP 開発構成情報の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。