OVH Community, votre nouvel espace communautaire.

Quelle pack pour un jeu php ?


Elgi
18/02/2004, 10h47
Nonothehobbit écrivait :
Vivi t'inquiète, c'est la meilleure solution pour ce que je veux faire. ^^
lol, je n'essaye que de te montrer ce que tu pourrais voir pour optimizer

une precision d'1 pixels c'est vraiment tres precis, en mettant cette precision sur un carre de 2 pixels, tu optimize par 3 !
Avec une precision de 3 pixels, tu optimize par 8 ! etc...

Voila c pas negligeable a savoir et a prendre en compte, maintenant et en effet, c'est ton script et tu est le mieux place pour connaitre ton besoin et optimiser ton script

Nonothehobbit
18/02/2004, 10h33
Vivi t'inquiète, c'est la meilleure solution pour ce que je veux faire. ^^

Elgi
18/02/2004, 08h46
Nonothehobbit écrivait :
Elgi : non je ne réinvente pas le code couleur, je me suis mal exprimer : le but de ma classe est (entre autre) de pouvoir fournir la couleur d'un pixel précis de l'image, je n'ai aucun moyen de le savoir à l'avance car je ne peut stocker les données de chaque pixel. Juste quelques unes, celle du script en cours....
c'est ce que je pensais aussi mais en effet ct pas tres clair alors je t'ai donne une solution pour ce qui me semblait clair mais irrealisable et dans le but que si tu avais reussi a faire une tel classe alors j'aurais bien voulu en profiter

Sinon, as tu besoin des 16 millions de nuances de couleur ?
As tu besoin que ce soit precis au pixel pres ?

Voila deux choses sur lesquels tu peux reflechir et voir si tu peux optimisé sur l'un ou/et l'autre !

Nonothehobbit
18/02/2004, 08h33
David. A : on va voir ce que ça donne. Je viens d'un autre jeu qui était hébergé chez OVH et ils ont pas eu de problème de hit jusqu'à récemment (au bout d'un an et demi quand même).

Elgi : non je ne réinvente pas le code couleur, je me suis mal exprimer : le but de ma classe est (entre autre) de pouvoir fournir la couleur d'un pixel précis de l'image, je n'ai aucun moyen de le savoir à l'avance car je ne peut stocker les données de chaque pixel. Juste quelques unes, celle du script en cours....

Elgi
18/02/2004, 02h12
Nonothehobbit écrivait :
Par exemple j'ai une classe de gestion d'image avec une méthode qui me retourne la couleur d'un pixel aux coordonnées (x,y). Durant l'exécution d'un script il est très probable qu'on me demande plusieurs fois la couleur du même pixel alors que celle-ci ne change pas.

Dans ma classe je fait donc un tableau de couleur indexée par les coordonnée et à chaque fois que je veut récupérer une couleur je regarde si elle n'est pas déjà dans le tableau. Si elle y est je copie sa valeur ce qui ne prend aucune ressources, sinon je veix chercher la couleur du pixel dans l'image (ce qui prend un peu plus de temps) puis je la copie dans le tableau pour ne pas avoir à la rechercher plus tard.

Bon ça diffère selon le type de donnée et le but du cache mais c'est un exemple. Il n'y a pas de méthode "ultime" à ma connaissance.
ton exemple est interessant.
Penses tu inventer de nouveau code couleur ?
les codes couleurs sont bases sur 3 couleurs primaires, le rouge, ver et bleu
en code hexadeciemal chacune peux prendre une valeur comprise entre 0-9 et A-F sur 2 chiffres.
en code rgb ces memes valeurs font de 0 a 255.

On a donc 3 couleurs primaires et 255 possiblites pour chacunes.
Puisque tu arrives a trouver dans un tableau une couleur avec ton script, tu devrais pouvoir trouver pour les 3 composantes la valeur rgb.
Tu ne devrais donc plus a voir besoin de chercher la couleur dans l'image comme tu le dis puisque tu connais deja toutes les possibilites

Sinon pour d'autres systemes de cache que celui dont tu parles dans cet exemple :
http://smarty.php.net par exemple
qui fais systeme de template et gestion cache de page web.
Ainsi tu peux ne faire que les requetes sql differentes pour chaque visiteurs et mettre en cache les req sql communes a tous

David.A
18/02/2004, 01h28
Nonothehobbit si tu veux avoir du monde sur ton jeu (genre Hyperium), tu vas vite exploser la limite des 300.000 requetes / jour du plan XXL

me souvient que sur hyp, on passait notre temps (minimum 1-2 heures par jour pour moi, et y'avait des furieux qui y passaient plus de temps) à rafraichir les pages pour voir les planètes se faire destroy, ou les unités grossir

donc le server privé risque d'être vite la base....
sauf si c'est un petit jeu entre amis, ou destiné à rester dans le "raisonnable"

Nonothehobbit
16/02/2004, 16h06
Par exemple j'ai une classe de gestion d'image avec une méthode qui me retourne la couleur d'un pixel aux coordonnées (x,y). Durant l'exécution d'un script il est très probable qu'on me demande plusieurs fois la couleur du même pixel alors que celle-ci ne change pas.

Dans ma classe je fait donc un tableau de couleur indexée par les coordonnée et à chaque fois que je veut récupérer une couleur je regarde si elle n'est pas déjà dans le tableau. Si elle y est je copie sa valeur ce qui ne prend aucune ressources, sinon je veix chercher la couleur du pixel dans l'image (ce qui prend un peu plus de temps) puis je la copie dans le tableau pour ne pas avoir à la rechercher plus tard.

Bon ça diffère selon le type de donnée et le but du cache mais c'est un exemple. Il n'y a pas de méthode "ultime" à ma connaissance.

Ali Baba
16/02/2004, 15h23
Pour le principe, dès que tu as une fonction assez gourmande en ressources (fonctions fichier / bdd / image) susceptible de retourner plusieurs fois un même résultat, je te conseille de faire un cache des résultats.
Oui mais de quelle manière ?

Nonothehobbit
16/02/2004, 11h13
Je ne sais pas, il faut savoir que PHP et mysql ont eux même leur propre système de cache (pour les stats de fichier ou les requêtes select).

Pour le principe, dès que tu as une fonction assez gourmande en ressources (fonctions fichier / bdd / image) susceptible de retourner plusieurs fois un même résultat, je te conseille de faire un cache des résultats. Pour ça, il vaut mieux faire une classe gérant ces différents accès c'est beaucoup plus pratique.


Ali Baba
16/02/2004, 09h17
ce que j'appelle cache n'en est pas vraiment un, j'enregistre simplement en session les données fixes ce qui m'évite de les recharger à chaque fois.
OK, c'est ce que je fais aussi. Je voulais savoir s'il y avait un moyen plus efficace.

Je connais une méthode (générer une page statique à chaque màj de la base puis d'appeler cette page statique), mais elle impose de ne mettre la base à jour que via un script.

Y a-t-il d'autres méthodes de cache ?

Nonothehobbit
14/02/2004, 00h21
En fait je ne fait pas vraiment de cache mais j'essaye d'optimiser mes requêtes un maximum. J'ai à chaque fois un récapitulatif des requêtes de ma page qui me permet de vérifier s'il n'y a pas des requêtes inutiles ou en double et ainsi de réduire au minimum.
ce que j'appelle cache n'en est pas vraiment un, j'enregistre simplement en session les données fixes ce qui m'évite de les recharger à chaque fois.

Ali Baba
13/02/2004, 15h57
J'ai déjà pas mal optimisé et je me sert de cache oui
En pratique, comment faites-vous un cache ?

Sinon, en ce qui concerne les limites en hits, elles sont indiquées là : http://ovh.com/fr/mutualise/plans/comparatif.html
et c'est expliqué dans la FAQ :
R: Un serveur web peut faire un nombre limité des connexions simultanées. Ce nombre varie entre 300 à 600 par serveur. Un plan possède plusieurs serveurs qui travailent en parallèle. Sachant qu'une requête web (html/php/cgi avec mysql) prend entre 400 à 1200ms à se faire, nous avons un nombre limité de nombre de requêtes par jour par serveur et donc par plan. Ce nombre varie entre 3'000'000-4'000'000 requêtes par jour par serveur. Ce que nous mutualisons, c'est ce nombre de requêtes et ainsi nous limitons le nombre de requêtes par jour par domaine hébergé.
Nous ajoutons régulierement les serveurs web en plus afin de maintenir la qualité du serveur et la rapidité d'execution.
Note : un hit=un appel vers le serveur (ex : un hit pour la page html + un hit pour chaque image chargée => une dizaine de hits par affichage d'une page web contenant qq images).

Nonothehobbit
13/02/2004, 13h21
Sinon j'ai entendu dire qu'il y avait un nombre limité de hit et que cela pouvait poser problème pour ce genre de site notemment.

Quelle est cette limite si elle existe, et comment sont comptabilisé les hits ?

L.Boggio
13/02/2004, 12h37
Nonothehobbit écrivait :
C'est uniquement pour ne pas signer un contrat pour s'apercevoir que l'offre en convient pas à nos besoins. D'ailleurs est-il possible d'avoir un mois d'essai ou il faut obligatoirement souscrire pour un an ?
Sauf erreur de ma part, il y a mieux. A confirmer quand-même, mais si tu prends un plan sous-dimensionné, et que tu changes ensiute pour plus gros, tu es crédité au rapport de coût du temps restant sur ton ancien plan.

concrétement, tu prends un hébergement à 50¤ par an, et au bout de 6 mois, tu en prends un à 100¤ par an. Comme tu as utilisé que 25¤ (en qque sorte) du premier plan, ils sont convertis en durée supplémentaire pour le deuxième plan (soient 3 mois de plus).

Attention, je dis peut-être une bourde, ne prends pas pour argent comptant, mais je suis à-peu-près sûr de mon coup.

Nonothehobbit
13/02/2004, 11h55
J'ai déjà pas mal optimisé et je me sert de cache oui. La taille des requête est assez moyenne, a par 2 ou 3 où je travaille sur des table de plusieurs milliers d'enregistrement, les autres requêtes restent assez simple.

Sinon vous pensez qu'un pack 720 suffira au niveau des performances ? J'ai déjà joué a un jeu hebergé par ovh qui avait des soucis de serveur car ilétait trop gourmand en ressource mais je ne sais ni l'offre qu'il avait ni si le jeu était plus ou moins gourmand en ressources que le notre.

C'est uniquement pour ne pas signer un contrat pour s'apercevoir que l'offre en convient pas à nos besoins. D'ailleurs est-il possible d'avoir un mois d'essai ou il faut obligatoirement souscrire pour un an ?

L.Boggio
13/02/2004, 10h14
Nonothehobbit écrivait :
Voilà, je suis actuellement en train de développer un jeu php avec une équipe de passionés et j'aimerai savoir quelle offre correspondrait le mieux à ce type d'application sachant que nous n'avons pas les moyen de louer un serveur dédié.

Pour info, le jeu exécute en moyenne 10 requêtes par page, et un joueur moyen devrait y passer 1/2 heure par jour.

3 connexion simultannées me semble insuffisant pour ce type d'application qu'en pensez vous ?

Merci d'avance
Pourquoi ? Ce qui est important, ce n'est pas le nombre de requêtes, mais leur temps d'exécution. Si les requêtes sont optimisées, avec des clés au bon endroit dans la base, et que donc tes requêtes soient courtes, les 3 connexions simultanées peuvent suffire dans la majorité des cas.

De plus, bien que je ne pense pas que ce soit faisable dans ton cas particulier, vérifies si vous ne pouvez pas mettre certaines infos en cache.

Nonothehobbit
13/02/2004, 09h45
Voilà, je suis actuellement en train de développer un jeu php avec une équipe de passionés et j'aimerai savoir quelle offre correspondrait le mieux à ce type d'application sachant que nous n'avons pas les moyen de louer un serveur dédié.

Pour info, le jeu exécute en moyenne 10 requêtes par page, et un joueur moyen devrait y passer 1/2 heure par jour.

3 connexion simultannées me semble insuffisant pour ce type d'application qu'en pensez vous ?

Merci d'avance