Maison  >  Article  >  développement back-end  >  Informations de configuration de développement Asf PHP résidant dans la mémoire système

Informations de configuration de développement Asf PHP résidant dans la mémoire système

藏色散人
藏色散人avant
2019-11-22 10:11:162212parcourir

Comparaison entre MVC traditionnel et Asf

Framework MVC traditionnel

Le fichier de configuration sera rechargé à chaque requête. Même si le contenu du fichier de configuration n'a pas été mis à jour, il sera rechargé. C'est une très mauvaise conception. (Lorsque Opcache est activé, il reste encore du temps de processus d'exécution)

Framework Asf

Le contenu du fichier de configuration lu est enregistré dans la mémoire système et le la prochaine requête y va directement Lire les données de la mémoire. Asf fournit également une implémentation de configuration très simple, Config Cache.

Dans quels scénarios est-il approprié d'activer le cache de configuration ?

● Il est recommandé de l'activer dans les scénarios d'application Web. Les versions ultérieures peuvent l'activer par défaut

● Il fonctionne également lorsqu'il est activé en mode CLI et multithread, sauf que le script PHP est publié à chaque exécution

● Les types de données pris en charge sont : chaînes, tableaux, entiers, booléens. , doubles, floats, null

Organigramme

Informations de configuration de développement Asf PHP résidant dans la mémoire système

Activer la méthode de mise en cache

<?php
ini_set(&#39;asf.cache_config_enable&#39;, 1); /* 开启配置文件缓存 */
ini_set(&#39;asf.cache_config_expire&#39;, 300); /* 设置缓存多少秒之后过期, 300 seconds by default */

Méthode d'entrée de cadre pour charger le fichier de configuration php/ini

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

AsfConfigPhp charge le fichier de configuration php

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

AsfConfigIni charge le fichier de configuration ini

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

Méthode de lecture du contenu de configuration

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

Test de performances

● Avec Opcache activé, un simple cache de configuration un test de performances a été effectué, ab -c100 -n10000

● Il existe une relation directe entre la complexité des éléments de configuration dans le fichier de configuration et les indicateurs de performances

Activer le cache 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)

Pas de cache

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)

Conseils

Cache Config n'est pas basé sur la mémoire partagée, c'est basé sur le processus PHP, et il n'y aura aucun problème de verrouillage de la mémoire partagée.

Recommandé : "

Tutoriel PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer