Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
| Nom | Défaut | Modifiable | Historique |
|---|---|---|---|
| yac.compress_threshold | 4K | INI_SYSTEM |
|
| yac.debug | 0 | INI_ALL |
|
| yac.enable | 1 | INI_SYSTEM |
|
| yac.enable_cli | 0 | INI_SYSTEM |
|
| yac.keys_memory_size | 8M | INI_SYSTEM |
|
| yac.serializer | php | INI_SYSTEM |
|
| yac.values_memory_size | 64M | INI_SYSTEM |
Voici un éclaircissement sur l'utilisation des directives de configuration.
yac.compress_threshold
int
Les valeurs sérialisées plus grandes que ce nombre d'octets sont
compressées (avec LZ4, depuis Yac 2.4.0) avant d'être stockées.
Les valeurs au delà de la limite de 1M par entrée
stockée (YAC_MAX_RAW_COMPRESSED_LEN) sont
toujours compressées, quel que soit ce réglage, car elles ne peuvent
pas être stockées non compressées. La valeur par défaut de
4K active la compression ; -1
la désactive pour les valeurs en deçà de la limite par entrée
stockée, et les autres valeurs positives sont ramenées dans
l'intervalle 1024..1M.
Compresser les grandes valeurs économise de la mémoire partagée au
coût de quelques cycles CPU lors du stockage et de la récupération.
yac.debug
int
Réservé au débogage. À partir de Yac 2.4.0, cette directive est enregistrée mais n'a aucun effet.
yac.enable
int
Si Yac est activé. Si désactivé, créer une instance de Yac lance une exception.
yac.enable_cli
int
Si Yac est activé lors de l'exécution sous le SAPI
CLI. Désactivé par défaut car les scripts en
ligne de commande démarrent et s'arrêtent immédiatement, et le
segment de mémoire partagée serait créé inutilement.
yac.keys_memory_size
string
Quantité de mémoire partagée pour la table des clés. Elle plafonne le
nombre d'entrées pouvant exister simultanément : la valeur par défaut
de 8M autorise environ 65 536 entrées. L'augmenter
lorsque le taux de succès baisse et que kicks
grimpe ; voir Gestion de la mémoire pour le
comportement d'une table pleine et les cas où cela importe vraiment.
yac.values_memory_size
string
Quantité de mémoire partagée pour le stockage des valeurs. Les valeurs
sont allouées par un allocateur linéaire sur des segments de 4M
chacun ; lorsqu'aucun segment n'a de place pour une nouvelle valeur,
le curseur d'allocation repart au début et les valeurs les plus
anciennes sont silencieusement écrasées (« recyclées »). Leurs
lectures se dégradent alors en défauts de cache, détectés par un
contrôle d'intégrité. Augmenter cette valeur si
recycles grimpe alors que les slots ont encore de
la place, ou activer
yac.compress_threshold
pour réduire les grandes charges utiles. Voir
Gestion de la mémoire.
yac.serializer
string
Sérialisateur utilisé pour transformer les valeurs PHP arbitraires
en octets avant de les stocker. Les valeurs autorisées sont
php (la valeur par défaut),
json, igbinary et
msgpack. Les trois derniers nécessitent que
l'extension soit compilée avec le support correspondant. Les
sérialisateurs binaires tels que igbinary et
msgpack sont généralement plus rapides et
produisent des données plus compactes que php.