Accélérer la lecture d'un fichier YML

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous,

Pour mon projet de jeu en ligne, j'utilise un certain nombre de fichiers YML qui contiennent les données de certaines classes. Je ne stocke pas ces données en BDD pour diverses raisons.

Or, après avoir testé les deux systèmes (en base de données ou en fichiers YML), je trouve que la lecture et le parsing des YML sont très lents (on passe de 500 ms à 2 voire 3 secondes sur le profiler). Il y a certainement du code que je peux optimiser, mais tout de même.

Du coup, j'aimerais savoir si le cache de Symfony2 pourrait m'aider. Je n'ai jamais utilisé le système de cache donc je ne sais pas trop si ça peut répondre à mes besoins. L'idéal pour moi serait de le stocker dans une mémoire plus rapide (la RAM ?), une fois pour toutes. À chaque requête, il n'y aurait plus besoin de parser ce fichier, il suffirait de le récupérer.

Une idée pour m'aider ?

Merci d'avance ;)

+0 -0
Staff

Pas de versionning

tu peux lire ton objet yaml une fois puis lancer la bdd ensuite non?

Sans compter qu'il me semble que Symfony commence à avoir un support des migrations, ce qui signifie que tu pourras versionner le code qui enverra tout en bdd et donc pas de problème.

Pour les migrations : http://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html

+0 -0
Auteur du sujet

Yo,

Je donne quelques nouvelles : j'ai fait un compromis. En gros j'ai créé mon YML contenant les données, et j'ai développé une commande console Symfony2 qui va le lire et ajouter/modifier/supprimer les entités en fonction de celui-ci. J'ai juste à intégrer cette commande à mon processus de déploiement et du coup tout doit fonctionner.

Ça me permet d'avoir un bon rapport entre vitesse (tout provient de la BDD) et "versionnabilité" (car les données proviennent du YML).

+0 -0

Sinon par rapport au sujet de base. Pour faire de la lecture de fichiers yaml efficace il existe une extension PHP je crois.

En gros il ne faut pas utiliser le composant de Symfony qui va être bien plus lent. D'ailleurs symfony précompile la config pour la prod afin d'augmenter les perfs me semble-t-il :-) .

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte