Bonsoir,
J'aimerais vous parler des sessions PHP, et surtout de leurs manque d'adaptabilité par rapport à nos jeux PHP.
La ou le bas blesse, c'est au niveau de l'optimisation de nos jeux.
L'optimisation est pour nous un point sensible, car le niveau d'optimisation de notre site influe directement sur l'argent que l'ont va devoir dépenser pour notre serveur.
Or, les sessions PHP on a mon gout des manques qui sont pourtant essentiels. J'aimerais, dans une session, pouvoir accéder aux sessions des autres joueurs et pouvoir les modifier.
Pourquoi?
Parceque ce serait une économie folle en ressource.
Je vais prendre un cas simple. Sur mon site web, j'affiche en haut a droite le nombre de nouveaux messages que le joueurs a. C'est à dire qu'a chaque page, je fait une requete exprés dans la BDD.
Ce simple affichage a produit rien que dans la journée d'hier 178 909 requêtes. :rip:
Or, (j'aime les Or en ce moment) il n'y as eu que 8 631 messages d'envoyé.
Si on pouvais, lors de l'envoie d'un message, parcourir la liste des sessions en cours sur le site, il suffirait de modifier le nombre de nouveaux messages que le joueur cible possède via sa session. Si aucune session ne correspond au joueur, alors on ne fait rien.
De la sorte, on remplace 178 909 requetes SQL par 8 631 éventuels modifications de session.
A noter que les sessions, en moyenne il doit y en avoir 50, et en heure de pointe ca grimpe à 200. La recherche d'une session est donc plutot simple (surtout que les sessions sont en rame, c'est donc rapide). Alors que pour le select, quelque soit le moment de la journée il faut le faire parmi 12 114 autres joueurs.
Je pense que vous imaginez un peu la taille de l'optimisation que ca représente.
Cela permettrais par exemple de réaliser certainnes choses jusqu'ici jugé trop couteuse, comme le fait de faire clignoter le lien "Alliance" lorsque quelqu'un a parler dans le chat d'alliance. (C'est un petit plus pour le joueur, mais ca renforce énormément la création de lien entre les joueurs, ce qui est le ciment de mon jeu).
Quand on ma proposer ca, dans ma tête le calcul était rapide: 178 909 requêtes en plus... Pas possible.
Or, il n'y as que 6 739 lignes d'entrées dans les chats d'alliance pour la journée d'hier.
Inutile de vous refaire le schéma, si on pouvait avoir 6 739 parcourt/modifications de session contre 178 909 requetes, ce serait génial!
Qu'en pensez vous? Quels sont vos impressions? Vos idées?
Ps: On remarquera que si on pouvait disposer de variables qui seraient globale a tout le site, notre problème serai résolus et nos sites serveur seraient heureux.
J'aimerais vous parler des sessions PHP, et surtout de leurs manque d'adaptabilité par rapport à nos jeux PHP.
La ou le bas blesse, c'est au niveau de l'optimisation de nos jeux.
L'optimisation est pour nous un point sensible, car le niveau d'optimisation de notre site influe directement sur l'argent que l'ont va devoir dépenser pour notre serveur.
Or, les sessions PHP on a mon gout des manques qui sont pourtant essentiels. J'aimerais, dans une session, pouvoir accéder aux sessions des autres joueurs et pouvoir les modifier.
Pourquoi?
Parceque ce serait une économie folle en ressource.
Je vais prendre un cas simple. Sur mon site web, j'affiche en haut a droite le nombre de nouveaux messages que le joueurs a. C'est à dire qu'a chaque page, je fait une requete exprés dans la BDD.
Ce simple affichage a produit rien que dans la journée d'hier 178 909 requêtes. :rip:
Or, (j'aime les Or en ce moment) il n'y as eu que 8 631 messages d'envoyé.
Si on pouvais, lors de l'envoie d'un message, parcourir la liste des sessions en cours sur le site, il suffirait de modifier le nombre de nouveaux messages que le joueur cible possède via sa session. Si aucune session ne correspond au joueur, alors on ne fait rien.
De la sorte, on remplace 178 909 requetes SQL par 8 631 éventuels modifications de session.
A noter que les sessions, en moyenne il doit y en avoir 50, et en heure de pointe ca grimpe à 200. La recherche d'une session est donc plutot simple (surtout que les sessions sont en rame, c'est donc rapide). Alors que pour le select, quelque soit le moment de la journée il faut le faire parmi 12 114 autres joueurs.
Je pense que vous imaginez un peu la taille de l'optimisation que ca représente.
Cela permettrais par exemple de réaliser certainnes choses jusqu'ici jugé trop couteuse, comme le fait de faire clignoter le lien "Alliance" lorsque quelqu'un a parler dans le chat d'alliance. (C'est un petit plus pour le joueur, mais ca renforce énormément la création de lien entre les joueurs, ce qui est le ciment de mon jeu).
Quand on ma proposer ca, dans ma tête le calcul était rapide: 178 909 requêtes en plus... Pas possible.
Or, il n'y as que 6 739 lignes d'entrées dans les chats d'alliance pour la journée d'hier.
Inutile de vous refaire le schéma, si on pouvait avoir 6 739 parcourt/modifications de session contre 178 909 requetes, ce serait génial!
Qu'en pensez vous? Quels sont vos impressions? Vos idées?
Ps: On remarquera que si on pouvait disposer de variables qui seraient globale a tout le site, notre problème serai résolus et nos sites serveur seraient heureux.
"L’avenir ne peut être prédit mais les avenirs peuvent être inventés"
Denis Gabor.
Denis Gabor.