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
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:
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: