optimisation php: Regles de base?

WRInaute passionné
Bonjour. J'ai appris a coder en php par moi meme sans aucun cursus de formation...Bref, ce que je code fonctionne, mais ne doit pas etre tres optimisé et flexible
Auriez vous des conseils pour bien faire les choses?

Deja, j'ai quelques questions sur des trucs que je fais mais qui doivent pas etre optimisés.

est ce que ca consomme bcp de construire une page en html et de faire appel a des variables en ouvrant des balises php chaque fois que necessaire?
en fait je place le code php au debut de la page, ensuite je ferme la balise, je commence la page html et jeplace des <? echo($mavariable); ?> partout
Il y a la possibilité de rester dans la balise php en ecrivant tout le code html dans le echo, mais j'aime pas (pas pratique de devoir mettre des antislash partout)
Mais si c'est important pour optimiser je m'y ferai.

Bref tous vos conseils en la matiere m'interressent.
A+++
 
WRInaute discret
Personnellement, je fais comme toi... Mis à part que j'ai réduit la syntaxe à <?=$variable?> qui t'affiche ta variable...
 
WRInaute impliqué
Chaque ouverture de balise PHP/ASP consomme des ressources supplémentaires mais ce n'est rien comparé à deux critères fondamentaux :

1- Optimise tes boucles et tes tests : Peu importe le langage c'est vrai.

2- Optimise la structure de ta BDD au niveau relationnel et supprimmes les éventuelles redondances.

3- Optimise les filtres WHERE de tes requêtes SQL en partant tu critère le plus sélectif au moins sélectif.

Avec tout ca tu gagneras en dépense inutiles de processeur, de mémoire et d'espace disque :wink:
 
WRInaute occasionnel
optimisation...

<?=$variable?> consomme plus de ressources que <?php echo $variable; ?>
la différence, encore une fois, n'est pas énorme, mais les petits ruisseaux faisant les grandes rivières, tu aurais tort de t'en priver...

Je suis aussi contre la solution du echo d'une seule variable contenant toute la page. En effet, c'est la méthode la plus rapide, mais pas forcément la meilleure... Lorsque tu l'utilises, ton serveur internet (Apache, IIS...) doit garder toute la page en mémoire, et donc utilisera plus de RAM. Avec 3 ou 4 visiteurs simultanés, c'est la bonne méthode à choisir, mais avec 500, tu vas saturer la RAM de ton serveur...

En bref, à toi de voir selon ton site et le serveur qui l'héberge si il vaut mieux privilégier les ressources en RAM ou celles en processeur.
 
B
Bernard
Guest
Re: optimisation...

* a dit:
doit garder toute la page en mémoire.

Oui si le script dure trop longtemps.

Si, non. Une facon d'optimiser est de limiter l'usage de la BDD qd c'est possible en utilisant des tableaux ou des liste de type switch-case.

rituel a dit:
2- Optimise la structure de ta BDD au niveau relationnel et supprimmes les éventuelles redondances.
Tu peux préciser ton idée ?

pour moi , limiter les redondances = multiplier le nb de tables = jointures = pas bon pour le rendement ......
 
WRInaute passionné
:)
je savais meme pas que <?=$variable?> etais envisageable. Ca me rejouit de voir ce que vous dites. apparement c pas trop grave d'ouvrir les balises de la sorte alors je vais continuer comme ca. Et merci pour tous les autres conseils d'optimisations...Ca va m'etre tres utile :)
 
WRInaute discret
"<?" : Mauvais en codage PHP.
"<?php" : Correct en codage PHP.

Le second assure que ton code sera bien interprété comme du PHP sur n'importe quel serveur.
Le premier affichera ton code au lieu de la page que tu veux générer si le serveur est configuré avec interdiction des short-tags.
 
WRInaute impliqué
Re: optimisation...

Bernard a dit:
rituel a dit:
2- Optimise la structure de ta BDD au niveau relationnel et supprimmes les éventuelles redondances.
Tu peux préciser ton idée ?

pour moi , limiter les redondances = multiplier le nb de tables = jointures = pas bon pour le rendement ......

Salut,

Les 2 extrêmes sont :
  • tout mettre dans une seule table => énormément de redondance
  • un champ par table : 0 redondance, structure incompréhensible, autant de jointures à faire que de champs à utiliser

De façon générale (sauf pour des cas d'optimisation extrême), je préfère faire une base de données relationnellement bien conçues, sans redondances (à part bien sûr les clés secondaires pour les jointures) : ça permet de faire des requètes sql propres, compréhensibles et de performance tout à fait valable à condition de respecter quelques règles basiques (jointures avec join plutôt que where, indexer correctement les champs qui doivent l'être, ne prendre que les données nécessaires, éviter les distinct ...).
 
WRInaute occasionnel
est-il vrai que l'ouverture d'un fichier (xml, mais le format importe peu en fait) est plus rapide qu'une connexion à une BDD MySQL ?
 
WRInaute occasionnel
Pour la question des jointures, la véritable question est : privilégier l'espace disque ou la vitesse d'éxécution?. C'est en fonction de ce critère, et de lui seul, qu'on choisit de faire une redondance.
Maintenant, si tu veux faire quelque chose de vraiment académique, il est clair que les redondances ne doivent pas exister (cf les formes normales).
En pratique, on utilise souvent les redondances pour éviter les jointures en cascade excessivement gourmandes en resources (jetez un coup d'oeil à la structure de base de données PHPbb et vous comprendrez!).
 
Discussions similaires
Haut