Plusieurs variables ou un tableau? (Performances)

Plusieurs variables ou un tableau? (Performances) - PHP - Programmation

Marsh Posté le 23-11-2016 à 13:10:51    

Bonjour,
Je travaille sur un site dont je dois optimiser les performances, je suis en train de mettre en place une traduction je dois donc faire en sorte que le site s'adapte pour chaque langue j'ai donc fait un fichier pour chaque langue ou je stocke certaines données variable selon la langue demandée.
J'hésite entre faire $variable1="Blabla" $variable2="Blablabla" ou un tableau $tab["1"]="Blabla" $tab["2"]="Blablabla".
La question est vraiment de voir ce qui sera le plus rapide à exécuter sachant que le site est déjà assez lourd même quelques MS comptent...
Merci d'avance :)


Message édité par yrom le 23-11-2016 à 14:13:21
Reply

Marsh Posté le 23-11-2016 à 13:10:51   

Reply

Marsh Posté le 23-11-2016 à 13:39:05    

La réponse m'intéresse aussi. Perso, j'ai fait jusqu'à présent une variable par message et un fichier de traduction par langue.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-11-2016 à 22:07:00    

Perso j'ai toujours utilisé un tableau-fichier par langue sans trop me poser de question. L'avantage c'est d'apporter de la lisibilité au code je trouve (bon après avec des préfixes dans le nom des vars on arrive sensiblement à la même chose).
Après niveau perf, je ne vois pas ce qui pourrait rendre un tableau plus rapide, donc je pencherai vers la variable simple. Mais le gain doit vraiment être négligeable.
Tu peux peut-être aussi passer par des paramètres plutôt que des variables.
 
Mais dans tous les cas je ne pense pas que tu puisses gagner 1 ms.


Message édité par MaybeEijOrNot le 23-11-2016 à 22:07:55

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 24-11-2016 à 00:02:55    

C'est un peu mon sentiment que les 2 systèmes, correctement employés, sont équivalent en terme de lisibilité et perfs :/
 
Moi, je fais généralement, pour le nommage de mes variables de langue :
$LANG_MODULE_PAGE_LABELDUMSG = "mon message";
 
Pour les items de menus, je fais :  
$LANG_TYPEMENU_MENU_LABELITEM = "Mon item";
 
TYPEMENU est soit "PRINCIPAL" soit "CONTEXTUEL".


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-11-2016 à 10:03:59    

En php, les strings avec doubles ou simples quotes n'ont pas la même utilisation. Dans des doubles quotes, si tu mets une variable, celle-ci sera remplacée par son contenu, ce qui n'est pas le cas dans des simples quotes.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-11-2016 à 13:52:38    

Pour les simples ou doubles quotes j'ai lu qu'il valait mieux utiliser des simples si on ne compte pas utiliser de variables dedans, parce que avec des doubles php va chercher si il y a une variable dedans.
Pour ce qui est de ma question de départ je pense utiliser un tableau je trouve ça plus lisible.

Reply

Marsh Posté le 24-11-2016 à 22:00:26    

Pour répondre juste à ta question sans prendre en considération le reste (consommation mémoire, lisibilité,  etc ...), accéder à une variable est plus rapide qu'accéder à une donnée dans un tableau.

Reply

Marsh Posté le 25-11-2016 à 14:00:11    

Simple quot est plus rapide que double quot.  
 
Mais de manière général la best practice pour faire de la traduction c'est normalementd'utiliser gettext : http://php.net/manual/fr/intro.gettext.php
 
Coté performance avec un volume de données important cela doit se ressentir, car gettext utilise des formats de fichiers intégrant une indexations. En effet quand tu auras 5000 mots traduit le tableau php risque de souffrir un peu.
 
Renseigne toi aussi sur xdebug et cachegrind, cela va te permettre d'auditer les performances de ton site et les les goulots d’étranglement.


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed