JeuWeb - Crée ton jeu par navigateur
Sessions ou MySQL ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Sessions ou MySQL ? (/showthread.php?tid=5008)

Pages : 1 2


RE: Sessions ou select mysql? - php_addict - 08-09-2010

(08-09-2010, 10:11 PM)niahoo a écrit : Il te faut faire un benchmark pour simuler les deux solutions avec 1000 utilisateurs en simultané.

En local ou au mieux en prenant un vieux PC et en montant ton serveur dessus.

et tu simule comment 100 utilisateurs?


RE: Sessions ou select mysql? - Sephi-Chan - 08-09-2010

En les ayant… Smile Tant que tu ne les as pas, ce n'est même pas la peine de s'intéresser à de telles solutions.

Quand on a besoin de stocker des choses qui sont très souvent consultées, le mieux est d'utiliser une solution de stockage en mémoire comme Redis ou Memcached.
C'est fait pour et c'est largement éprouvé. Bien sûr, il faut un serveur dédié, très accessibles de nos jours.


Sephi-Chan


RE: Sessions ou select mysql? - Anthor - 08-09-2010

Il existe plusieurs logiciels pour simuler la charge sur un serveur :
http://httpd.apache.org/docs/2.0/programs/ab.html
http://jakarta.apache.org/jmeter/


RE: Sessions ou select mysql? - php_addict - 08-09-2010

et quelle est la différence entre un Memcached et l'utilisation de Table memory Heap mysql ? (hormis qu'il n'y a pas de différence et qu'il faille un dédier...)

pour le moment je n'ai pas 10000 joueursWink il n'y a que moi...


RE: Sessions ou select mysql? - Sephi-Chan - 08-09-2010

Et bien MySQL est une base de données relationnelle alors que Redis et Memcached sont des systèmes de stockage par clé/valeur.

En gros, ta base de données Redis (ou Memcached) est un tableau associatif alors que MySQL est une base de données interrogée via SQL.


Sephi-Chan


RE: Sessions ou MySQL ? - niahoo - 08-09-2010

non mais un benchmark ça sert juste à comparer des algorythmes, des types de requetes et/ou d'accès aux données, etc..

je ne te propose pas de créer un super bot qui joue à ton jeu et d'en lancer 100 (quoique...)

mais par exemple tu fais un petit script en python qui lance 100 threads qui vont chacune faire une requete aléatoire parmi une pioche de requêtes prédéfinies et qui vont appeler ton script en faisant une requête sur le port 80 à l'adresse 127.0.0.1.
Et ce script, la première fois tu lui fais faire tirer ses infos de la session, et la fois suivante tu lui fais tirer de la base SQL. Dans les deux cas la réponse doit être la même.

tu compare le temps que ça à mis au total dans ton script python pour chaque type de script php.

ensuite tu recommences mais en inversant l'ordre des deux types de scripts, puis tu recommences le tout en "restartant" apache (ou autre serveur) avant chaque test, etc..

à la fin tu verras ce qui est le plus rapide.

Mais ça évidemment ça ne simule pas des joueurs, ceci dit tu es libre d'implémenter le script d'appel et donc de lui faire faire potentiellement tous les actes d'un joueur normal.


C'est ce que je ferais. Ensuite, les outils proposés par Anthor font peut-être ce genre de choses en mieux, je te suggère vivement d'aller voir.


RE: Sessions ou MySQL ? - Sephi-Chan - 09-09-2010

Pour simuler les actions des joueurs, tu peux utiliser des outils de tests comme Selenium.
Mais bon, de toute manière c'est bidon comme solution, donc pas besoin de la tester. Ce serait bête de faire reposer ton jeu sur ce genre de fondations.


Sephi-Chan