JeuWeb - Crée ton jeu par navigateur
Optimisation de php - 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 : Optimisation de php (/showthread.php?tid=552)

Pages : 1 2


RE: Optimisation de php - Plume - 29-12-2006

joshua a écrit :Juste un petit reproche Dämen, le site que tu montres n'affiche pas les graphes depuis 0. Ca peut etre trompeur :p
En n'affichanque depuis 81, la différence entre 83ms et 84ms parait enorme ^^

Ca après c'est plus mon problème ^^


RE: Optimisation de php - zzarbi - 12-02-2007

Bon j'ai un petit problème... je veux gérer les langues de la manière la plus optimisé possible, et la plus facile à reprendre pour la traduction...
Donc j'énumère les solutions, j'en connais 4 (Mais il y en a d'autres) :
1 - Mettre toutes les chaines de caractères dans un tableau de cette façon, :
Code PHP :
<?php 
$lang
= array('welcome' => 'Welcome',
'text1' => 'My text 1',
'text2' => 'My text 2'
);

2- Mettre toutes les chaines de caractères dans des DEFINE :
Code PHP :
<?php 
define
('text1', 'My text 1');
define('text2', 'My text 2');

3- Utilisder du XML avec simpleXML

4- Utiliser gettext

De mon analyse j'élimine le XML plus lourd que les autres à mon avis, surtout si on a beaucoup de texte et le gettext assez chiant à manipulé, mais efficace. Ils nous restent donc le tableau et les define...

Et j'ai fait un test d'execution :
- 84 mots enregistrés dans un tableau et donc 84 define aussi
- affichage directement dans le navigateur via une boucle for qui tourne sur 10000;

Et comme résultat, les define obtiennent : 0.0066s et le tableau obtient 0.0477s, donc les define sont plus rapide, mais j'arrive quand même pas à me décider...

Pourriez-vous me donner un avis ? Pas forcément sur l'efficacité, mais sur le mieux à utiliser, le plus pratique Smile


RE: Optimisation de php - gtsoul - 13-02-2007

Il faut arrêter de fantasmer sur l'optimisation de telle ou telle fonction !!
C'est du gagne-petit, alors qu'il y a beaucoup plus à faire sur la reconception de ses algorithmes.
Le xml est plus lent d'accès, qu'une bdd, qu'une définition de variable, et c'est encore plus lent si tu dois le modifier. Les xml s'utilisent pour ramasser beaucoup d'infos d'un coup en prenant le fichier entier, ex : caractériser des comportements de pnj.
Le define sert à définir des CONSTANTES
les tableaux de variables contiennent des VARIABLES

Si tu as 84 mots qui restent les mêmes pour tous les joueurs => define
Si ils sont 100% dynamiques => variables & bdd
Si tu peux en sortir un nombre fini d'ensembles (les mots sont les mêmes pour chaque peuple, il y a 5 peuples) => xml


RE: Optimisation de php - zzarbi - 13-02-2007

C'est ptet du "gagne-petit", mais imaginons que je gère les langues via XML, et que j'ai énormement de texte, juste le fait de parser le XML, je prend déja beaucoup trop de mémoire... certes on le fait qu'une fois ensuite on le stock dans des variables (Pour Sg-univers si on fesait ça je suis sûr que le serveur patinerai bien...)

Enfin bref, là le but est de savoir même si il ya une différence que de qqe milliseconde sur une boucle de 10000, si c'est plus pratique d'utiliser des define qu'un tableau de variables, à mon avis c'est plus propre d'utiliser un tableau de variable... Dans mon cas ça serait plutôt quelques centaines de lignes de texte ^^


RE: Optimisation de php - Seren - 13-02-2007

zzarbi a écrit :C'est ptet du "gagne-petit", mais imaginons que je gère les langues via XML, et que j'ai énormement de texte, juste le fait de parser le XML, je prend déja beaucoup trop de mémoire... certes on le fait qu'une fois ensuite on le stock dans des variables (Pour Sg-univers si on fesait ça je suis sûr que le serveur patinerai bien...)

Enfin bref, là le but est de savoir même si il ya une différence que de qqe milliseconde sur une boucle de 10000, si c'est plus pratique d'utiliser des define qu'un tableau de variables, à mon avis c'est plus propre d'utiliser un tableau de variable... Dans mon cas ça serait plutôt quelques centaines de lignes de texte ^^

ça dépend ce que tu vas faire avec. Si tu es sûr que ton texte restera constant et ne sera jamais modifié, tu peux utiliser define.

Par contre si tu veux manipuler ton texte, le tableau te permet de garder le résultat.

Par exemple si sur chaque page tu affiches "Personnage : John doe" ou "Character : John Doe", plutôt que de refaire à chaque fois $lang[perso].$name tu peux le faire une seule fois et stocker le résultat dans le tableau*, genre $lang[perso] .= $name.

Et si tu utilises ce genre de technique plusieurs fois tu vas t'éviter des concaténations. Et à ce moment là c'est pas sûr que le "define" soit meilleur que le tableau.

Tout dépend de l'utilisation.

(* : ça suppose quand même que ton tableau est gardé en $_SESSION ou dans un $_COOKIE.)


Petit apparté sur les temps de chargement:
(Mais effectivement ça change rien au niveau de la charge du serveur...)
Pour une image qui fait
15k avec un modem 28,8 : 520 ms
15k avec ADSL 512 : 30 ms
15k avec ADSL 2 Mo : 7,5 ms

10k avec un modem 28,8 : 350 ms
10k avec ADSL 512 : 20 ms
10k avec ADSL 2 Mo : 5 ms

Tout ça pour dire que si tu veux vraiment gratter quelques milliseconde t'as plutôt intéret par comment à afficher des images, icônes, plus légères.


RE: Optimisation de php - zzarbi - 13-02-2007

Je veux gratter des millisecondes sur la charge du serveur mémoire/proc, la bande passante pour moi a toujours été secondaire, surtout avec le cache de nos navigateurs...

Mais merci pour l'idée du tableau, ça peut être utile...