5 votes

Php super super globals

Je me demandais, j'ai ce grand tableau, est-il possible de l'avoir qu'une seule fois en mémoire plutôt qu'une fois par thread? Prenez les balises ici sur stackoverflow comme exemple. Elles changent très rarement, pourquoi ne pas avoir un seul emplacement en mémoire pour elles? Et peut-être même conserver ce tableau en mémoire en permanence?

4voto

Captain Giraffe Points 5907

Jetez un coup d'œil à apc_store

Contrairement à de nombreux autres mécanismes en PHP, les variables stockées à l'aide de apc_store() persisteront entre les requêtes (jusqu'à ce que la valeur soit supprimée du cache).

2voto

deceze Points 200115

Pour cela, vous pouvez utiliser les fonctions shmop ou un cache mémoire dédié comme memcached.

1voto

Gabriel Sosa Points 4801

Chaque processus php s'exécute isolément des autres. C'est différent de Java par exemple où, lorsque vous avez un seul objet, vous pouvez le maintenir en vie jusqu'au redémarrage de la JVM.

malheureusement, si vous avez un objet (petit ou grand), il sera chargé à chaque fois que le script php s'exécute MAIS si vous voulez partager quelque chose en mémoire entre les exécutions, vous pouvez utiliser APC, memcache ou mémoire partagée

Entre ces options, je vous recommande vivement APC.

0voto

Non - les problèmes de synchronisation inhérents au partage d'une seule variable directement entre les interprètes PHP rendent cela impossible. Il est beaucoup plus probable que Stack Overflow évite tout simplement de "penser" à l'ensemble du tableau de balises en une seule fois.

Vous pouvez utiliser les fonctions de stockage de variables dans APC (apc_store et apc_fetch) pour stocker des données sérialisées dans la mémoire partagée, cependant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X