JeuWeb - Crée ton jeu par navigateur
Combien de temps maximum doit prendre la page à charger ? - 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 : Combien de temps maximum doit prendre la page à charger ? (/showthread.php?tid=720)

Pages : 1 2


RE: Combien de temps maximum doit prendre la page à charger ? - Amrac - 28-12-2010

En temps de calcul de la page PHP (il me semble que c'était la question au début), je fait en sorte que mes scripts soient inférieur à 0,1s soit 100ms.

En moyenne sur mon site, je suis a 50ms de temps de calcul par page.


RE: Combien de temps maximum doit prendre la page à charger ? - php_addict - 28-12-2010

(28-12-2010, 08:53 PM)oxman a écrit : Ceci dit google/bing font très bien en tant pour établir la connexion, bing déchire tout avec seulement 5ms. Je ne sais pas ce qu'ils utilisent, mais je ne pense pas que l'on parle juste de bande passante et de puissance serveur, il doit y avoir autre chose, connexion pré ouverte etc ?

ah ba si ca doit quand même aider un serveur puissant ou un hangar de data center Wink

t'es tu renseigné sur les caches d'opcode?

peut être des pistes ici: http://www.webrankinfo.com/dossiers/webmastering/site-rapide


RE: Combien de temps maximum doit prendre la page à charger ? - niahoo - 29-12-2010

oui la puissance des PC derrière doit être sympa, pis j'ai entendu parler de varnish, j'sais pas trop ce que c'est mais ça semble permettre ça.


RE: Combien de temps maximum doit prendre la page à charger ? - srm - 29-12-2010

C'est un serveur de gestion de cache, on en a au travail.
Je vais tester avec pour voir si l'établissement de la connexion est plus rapide avec un varnish.


RE: Combien de temps maximum doit prendre la page à charger ? - NicoMSEvent - 29-12-2010

[mode déjanté on]
après l'ajax pour faire un site propre, maintenant on a le varnish oxy-action!
[Image: varnish.jpg]
[mode déjanté off]


RE: Combien de temps maximum doit prendre la page à charger ? - niahoo - 29-12-2010

haha ^^

Mais oxman, varnish, s'il relaie des pages dynamiques évoluant toutes les secondes, genre suivi en temps réel des scores du serveur, il ne peut rien mettre en cache et c'est donc une perte de ressources non ?


RE: Combien de temps maximum doit prendre la page à charger ? - srm - 29-12-2010

Sauf si tu as plus de une requête par seconde Wink
Je vais tester varnish pour voir si c'est lui qui explique un meilleur délais sur le temps d'établissement de la connexion.
Avec varnish je gagne une dizaine de mili secondes, je suis donc au alentour de 140ms, donc ça n'est pas ça Smile


RE: Combien de temps maximum doit prendre la page à charger ? - srm - 29-12-2010

Ceci dit, pour une page très sensiblement identique, j'ai un meilleur temps de réponse sur :
SinatraRb, puis Symfony 2, puis Rails 2

Les trois urls :
SinatraRb : http://dev.beta.hon.bouh.org/scoreboard (152ms)
Symfony 2 : http://hon.symf.bouh.org/scoreboard (205ms)
Rails 2 : http://hon.bouh.org/ (456ms)

J'ai pris les valeurs dans l'onglet network de la console de dev de Chrome 10 en vidant à chaque fois avant le cache.


RE: Combien de temps maximum doit prendre la page à charger ? - Horace - 07-02-2011

Pour la question du « temps de calcul de la page PHP », le plus simple c'est de l'afficher au bas de chaque page. Ça permet de voir l'évolution selon le type de calculs, selon les serveurs (hébergement), selon les heures.

Un code PHP simpliste en guise de mini-tuto

// En début de chaque page (ou dans l'index.php)

list($usec, $sec) = explode(" ", microtime());
$debutcompteur = ((float)$usec + (float)$sec);


// A la fin de chaque page

list($usec, $sec) = explode(" ", microtime());
$fincompteur =((float)$usec + (float)$sec);
$dureeAffichage = $fincompteur-$debutcompteur ;

// affichage avec 3 chiffres après virgule ("0.234 secondes")
echo 'Page générée en '. round($dureeAffichage,3) .' secondes';

Dans mes jeux, je n'utilise pas de cron. En général, l'affichage de pages lancent des calculs (et mises à jour) sans aucun rapport avec l'affichage et le contenu de la page. Je module selon la fréquence de visites de chaques pages (d'après statistiques), et la vitesse de calcul de la page. Avec suffisamment de visiteurs sur le site, ça permet de faire calculer en continu !
Par exemple, un joueur affiche une page de news légère, et le script met à jour (UPDATE) les ressources de 100 autres joueurs.

Perso, pour des jeux, certaines pages peuvent très rarement approcher 2-3 secondes (voir 5-6s j'avoue...). Par exemple, la mise à jour quotidienne du cache d'une page quelconque par le premier visiteur qui consulte cette page après minuit. Par forcément envie de mettre un cron (ou découper en 10 petites requêtes SQL) la génération d'une page à la con, rarement consultée. Et si y'a beaucoup de joueurs, les victimes sont rarement les mêmes).
Mais en général j'essaye de rester en dessous de .1s, et pas dépasser 0.5s. Cette durée me semble assez négligeable, par rapport aux autres durées finale (affichage navigateur). Enfin, ça dépend du jeu, de l'hébergeur, des pages, du contexte...

Bon, sur le temps de calcul côté serveur, s'ajoute des histoires compliquées de « mise en cache des requêtes PHP ou SQL » (Apache, MySql, etc), que je maîtrise ou comprend mal, et n'essayerai pas d'expliquer. Disons que la génération d'une même page PHP/SQL prendra 0.3s la première fois, puis 0.04s les refreshs suivants.

Au final c'est un équilibre entre la vitesse (le confort du joueur), et l'optimisation du code (travail) et le prix de l'hébergement. Et pour un jeu PHP, l'optimisation du code, consiste le plus souvent en l'optimisation de la base et des requêtes SQL : par exemple, faire une seule et astucieuse (mais "compliquée") requête SQL, plutôt que 5 requêtes faciles mais cochonnes. Astuce : Dans PhpMyAdmin, lancez des exemples de grosses requêtes depuis l'onglet "SQL" pour tester les différents temps.

En guise d'explication pour les débutants.

Edit : Oups, la question initiale portait sur PHP/Ruby. :langue: