Optimisation vs PHP , PHP
- 13/09/2008
Optimisation PHP (Partie 1)
Les gens bien, c'est la première partie de certains postes liés à l'optimisation du code PHP.
Comme PHP est un langage très facile à apprendre, le nombre de personnes qui programme est grand ... Ah, quand la personne a appris à enregistrer des données dans la base de données qu'il a déjà fait remarquer freelances . Mais la qualité du code est trop faible pour cette raison, PHP a été en quelque sorte "diffamé" et miné. Pour beaucoup de gens, est synonyme de solution de contournement PHP!
Avec ces messages, j'ai l'intention de montrer que vous avez à faire avec la qualité et des codes optimisés.
(1) - écho est plus rapide que l'impression.
Clair que la différence est minime. Pour le print () affiche une valeur sur l'écran et retourne une valeur entière (1 ou 0) tandis que echo affiche simplement la valeur sur l'écran.
Par exemple, avec une impression que vous pouvez faire:
- <?
- ?>
(2) - Définissez la taille de vos boucles avant, évitez d'utiliser des fonctions telles que count () et sizeof () dans la boucle. Voir l'exemple ci-dessous:
Comment NE PAS LE FAIRE:
- <?
- ( 'maça' , 'banana' , 'morango' , 'mamão' ) ; Fruits $ = array ('apple', 'banane', 'fraise', 'Papaye');
- }
- ?>
Notez que dans ce cas, la fonction count () est appelée à chaque fois que la boucle se produit (car comme vous le savez, la ligne 4 est exécutée à chaque tour de la boucle). Mais, comme nous l'avons seulement besoin de la taille du tableau, nous déclarons une variable qui recevra cette information.
Voir ci-dessous pour la façon dont CORRECT:
- <?
- ( 'maça' , 'banana' , 'morango' , 'mamão' ) ; Fruits $ = array ('apple', 'banane', 'fraise', 'Papaye');
- $i = 0 ; $i <= $tamanho_do_array ; $i ++ ) { for ($ i = 0; $ i <= $ tamanho_do_array; $ i + +) {
- }
- ?>
Notez que dans la ligne 3, nous déclarons une variable qui va contenir la taille du tableau doit être utilisé à la ligne 5.
(3) - la mesure du possible les variables de libération, qui ne sont plus utilisés, principalement tableau.
PHP dispose d'une fonction qui est responsable pour les variables CLEAR, voir ci-dessous comment l'utiliser:
- <?
- $frutas ) ; // ou unset($frutas[0]) para apagar um índice no caso de arrays unset ($ fruits); / / ou unset ($ fruits [0]) pour supprimer un index dans le cas de tableaux
- ?>
(4) - Essayez d'utiliser les guillemets simple pour les chaînes.
Lorsque vous utilisez des guillemets simples, PHP ne dérange pas d'essayer d'interpréter ce qui est à l'intérieur du STRING (variables, etc ...).
Avec citations que vous pouvez faire ceci: $ text = ". Mon texte avec une variable $".
Autrement dit, lorsque vous cite toujours doubles, PHP va vérifier si vous avez n'importe quelle variable doit être interprété. Dans le cas de guillemets simples, il n'interprète pas les variables en elle, donc PHP prend moins de temps.
Utilisez les guillemets lorsque vous utilisez "\ n \ t" et autres.
(5) - Toujours utiliser des chemins absolus à la trajectoire rapport.
Pour signaler comprend le chemin d'accès et / ou l'exige, mettre le chemin complet, car moins de temps est consacré à la résolution des chemins OS.
Utilisez $ _SERVER ['DOCUMENT_ROOT'] pour trouver le chemin absolu. Voir l'exemple ci-dessous:
- <?
- [ 'DOCUMENT_ROOT' ] ; _SERVER Chemin_absolu $ = $ ['DOCUMENT_ROOT'];
- $caminho_absoluto . '/includes/conexao.php' ) ; include ($ chemin_absolu '/ includes / conexao.php'.);
- $caminho_absoluto . '/includes/funcoes.php' ) ; include ($ chemin_absolu '/ includes / funcoes.php'.);
- ?>
Si vous avez imprimé le texte suivant:. $ Chemin_absolu "/ includes / conexao.php," nous aurions une réponse (en cours d'exécution sur ma machine) ce qui suit:
C :/ xampp / htdocs / includes / conexao.php
Qu'est-ce que le rouge, vous n'aurez jamais besoin de vous inquiétez pas! Pour toutes les fois qu'il prend le chemin du serveur.
(6) - Remplacement
1) str_replace () est plus rapide que preg_replace (), mais strtr () est d'environ 4 fois plus rapide que str_replace ().
2)
- <?
- array ( '-' , '!' ) , array ( ' ' , '.' ) , 'Olá-Mundo!' ) ; str_replace ( array - '!' (',), array ('',), 'Bonjour tout le monde!'. ');
- ?>
Le code ci-dessus est plus lente que le code ci-dessous.
- <?
- ?>
(7) - Il est plus rapide à utiliser que de nombreux INTERRUPTEUR "else if"
- <?
- $mes ) { switch ($ mois) {
- : cas 1:
- break;
- : cas 2:
- break;
- : case 3:
- break;
- : case 4:
- break;
- : case 5:
- break;
- }
- ?>
Le code ci-dessus est plus rapide que le code ci-dessous
- <?
- $mes == '1′ ) { if ($ mois == '1 ') {
- ( $mes == '2′ ) { } Else if ($ mois == '2 ') {
- ( $mes == '3′ ) { } Else if ($ mois == '3 ') {
- ( $mes == '4′ ) { } Else if ($ mois == '4 ') {
- ( $mes == '5′ ) { } Else if ($ mois == '5 ') {
- }
- ?>
(8) - Ne jamais utiliser pour cacher des erreurs @
Jamais, en aucun cas utiliser le @ pour masquer les erreurs. Ce type de gestion des erreurs est très lent.
(9) - Aller aux tableaux indexés avec des citations clés
$ Row ['id'] est environ 7 fois plus rapide que $ row [id].
(10) - Déclarer des variables pour les augmentations
Incrémenter une variable qui a déjà été initialisé roue environ 9 fois plus rapide que d'une variable qui n'a pas été incrémenté.
Eh bien, c'est tout pour l'instant ... Si vous ne comprenez pas quelque chose, ou ne sont pas d'accord, s'il vous plaît envoyer vos commentaires afin que nous puissions échanger des idées ...
Un gros câlin!



13 Responses to "Optimisation PHP (Partie 1)"
Cock marcelo. Très bon post!
Une curiosité:
Comment avez-vous déterminé les vitesses de savoir que l'on est x fois plus vite que l'autre?
Par Diego Gomes (10 commentaires) sur 15/09/2008
Heureux que vous aimé 30!
Je googlado OMT et de trouver des blogs qui en parlent. J'ai trouvé un site qui a été mesuré comme suit: Il s'agit d'un (par exemple) avec 10.000.000 boucles. Et ils ont mis dans cette est une routine (utiliser les guillemets doubles, alors simple, ...). Ainsi, est mesuré en secondes (ou millisecondes) qu'il a fallu pour exécuter le script ...
Dans le dernier post, je vais mettre toutes les sources de mes recherches.
Big hug mon fils!
Par Marcelo Sabadini (109 commentaires) dans 15.09.2008
Très cool Marcelo.
Il a des choses très utiles dans ce post. Félicitations homme
Pour Nosbielcs (3 commentaires) dans 30/09/2008
Merci mon cher ...
Le truc cool, c'est qu'il ya des choses qui peuvent être prises dans d'autres langues ...
Partie II est déjà dans le four heheheh
Par Marcelo Sabadini (109 commentaires) dans 30/09/2008
Très bon! certaines choses que je ne connaissais pas (guillemets simples plus rapidement, "pour accéder à l'index de tableau) ... Ces conseils sont toujours les bienvenus.
Hug!
Par Fabio M. Costa (4 commentaires) sur 10/08/2008
Ouais ... Je tmb Fabio ne sais pas de beaucoup de choses. Je prépare la deuxième partie et je vais poster des références. Il a beaucoup plus ... J'ai décidé de ne mettre que le plus utilisé, même heheheh
Les étreintes et faleu pour l'entrée!
Par Marcelo Sabadini (109 commentaires) dans 10.08.2008
Bonjour Marcelo, le PHP Cours Mini est très intéressant surtout pour ceux qui sont dans la langue de départ, est très bon de voir des gens comme vous qui ont la bonne volonté et aimez ce que vous faites, d'enseigner.
Comme je l'ai avoir accès à toutes les parties du cours, mais pas parce que des recherches ouvre séquentiellement et j'avoue que je me retrouve perdu.
Je vous remercie pour l'orientation et l'excellent travail!
Par Sergio Santos (6 commentaires) sur 12/01/2008
Je suis d'accord avec le début de votre message: pour être très rapide et facile, si elle n'est pas soignée, il peut être fait beaucoup de "conneries".
À ces moments-là qu'un bon programme de formation fait une différence!
Par Chris Benseler (2 commentaires) sur 29/05/2009
Excellent article. Mais où est la suite? hehe
Hug!
Par Paul (1 commentaires) sur 28/08/2009
Ouais ... je dois Paul a continué = /
Mais je suis une bonne idée à POST. Je suis déjà en place avec lui au scratch hehehehe
Étreintes!
Par Marcelo Sabadini (109 commentaires) dans 09.12.2009
Très bon poste, bien expliqué.
Félicitations.
Par Geda Diogo (1 commentaires) sur 30/03/2010
Valew kara.
Pour dimitrikx (1 commentaires) dans 03.07.2010
Brigadão mec, il refroidir, mettre
accepte que l'option pour les personnes travaillant en php n'est pas très large mais il admet faire le chemin Quaker
(POG)
Pour Valmir (1 commentaires) dans 09.11.2010