Maison >développement back-end >tutoriel php >Les informations de configuration du développement Asf PHP résident dans la mémoire système

Les informations de configuration du développement Asf PHP résident dans la mémoire système

不言
不言original
2018-07-07 16:48:261510parcourir

Cet article présente principalement les informations de configuration du développement Asf PHP résidant dans la mémoire système. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Comparaison entre les traditionnels. MVC 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. (Quand Opcache est activé, il reste encore du temps d'exécution)

Framework Asf

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

Dans quel scénario 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 prend également effet lorsqu'il est activé en mode CLI et multi-thread, sauf que le script PHP est libéré à chaque exécution

  • Types de données pris en charge sont : chaînes, tableaux, entiers, booléens, doubles, flottants, null

Organigramme

Les informations de configuration du développement Asf PHP résident dans la mémoire système

Activer la méthode de cache

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

Mode d'entrée de cadre chargeant 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;);

lire la méthode 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 test de performances de Config Cache a été effectué, ab -c100 -n10000

La complexité et indicateurs de performance des éléments de configuration dans le fichier de configuration Il existe une connexion directe

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 est basée sur le processus PHP, et il n'y aura aucun problème de verrouillage de la mémoire partagée.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Planificateur de chargement Nginx + double partage de charge et de session Tomcat + base de données backend MySQL

ThinkPHP5.0 Linux Apache/ Configuration de l'URL de réécriture de Nginx

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn