IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de donn�es Discussion :

Optimisation de scripts PHP/MySQL [D�bat]


Sujet :

PHP & Base de donn�es

  1. #101
    Membre averti
    Inscrit en
    F�vrier 2004
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 32
    Par d�faut
    Moi j'en avais une autre:vaut-il mieux utiliser des fonctions mysql ou php ?
    Mysql ! Faut faire des requetes qui te g�n�re les resultats pret � etre affich� ... Utilise par exemple les fonctions de formatage de date de ta BD plutot que celui de php...

    Mais j'ai aussi une question qui se raproche de celle de despe974 !!
    Je suis sur un projet actuellement que je dev en php (c'est un vrai soft � lui tout seul) et j'aurais bien structurer le projet comme je l'aurais fait en java par exemple (Tout objet casiment) mais j'ai eu peur de devoir faire des includes de pages contenant 1000000000 de lignes avec toutes mes classes qui au final ne seraient pas toute utilis�es dans chaque page.

    Alors est ce que le fait de faire des includes de "porc" va entrainer une grosse charge et un ralentissement ?

  2. #102
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Sant�

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Par d�faut
    Ma solution : utiliser des include_once uniquement pour les libs utiles dans toutes les libs qui en d�pendent. Comme �a les modules ne sont charg�s qu'en cas de besoin.
    PEAR::Cache_lite fait pareil, il ne charge le coeur de pear qu'en cas de besoin (en cas d'erreur en fait)

  3. #103
    Membre averti
    Inscrit en
    F�vrier 2004
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 32
    Par d�faut
    Le include_once ne se charge qu'en cas de besoin ?
    C'est ce qu'il me faut mais j'ai pourtant pas vu ca dans la doc ...
    http://fr2.php.net/manual/fr/function.include-once.php

  4. #104
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Sant�

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Par d�faut
    Non, j'ai mal expliqu� : tu ne mets des include_once que dans les fichiers qui ont besoins d'autres fichiers, au lieu d'inclure tout ce qui peut �tre utile au d�but.
    Genre classefille.php inclue classemere.php qui inclue commun.php
    et classefille2.php inclue classemere2.php qui inclue commun.php
    Dans une page qui n'utilise que classefille.php, les fichiers inutiles fille2 et mere2 ne seront pas charg�s (gain de temps).
    Mais si une page appele fille et fille2, commun.php sera inclu deux fois, d'o� l'obligation d'utiliser le include_once, qui ne le reincluera pas.

  5. #105
    Membre �clair� Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Par d�faut
    salut,

    J'ai appris pleins de choses � la lecture de ce topic !!! Grand merci � ceuzes qui y contribuent

    Du coup, j'ai une question... qu'est-ce qui est plus rapide - et la diff�rence est-elle sensible ?

    3 variables diff�rentes :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    $var1=1;
    $var2=2;
    $var3=3;
    ou

    1 variables tableau :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    $var[1]=1;
    $var[2]=2;
    $var[3]=3;

  6. #106
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Sant�

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Par d�faut
    Qu'est ce qui te pousse � nous faire aveuglement confiance, alors que tu peux facilement tester?

  7. #107
    Membre �clair� Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Par d�faut
    euh... ben comment ???

  8. #108
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Sant�

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Par d�faut
    Classiquement
    - note l'heure
    - execute 1000 fois le script
    - calcule heure-heure not�e

    Par exemple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function getmicrotime()
            {
            list($usec, $sec) = explode(" ", microtime());
            return ((float)$usec + (float)$sec);
            }
     
    $time = getmicrotime();
    for($ct=0; $ct<1000; $ct++) mafunctionatester();
    echo getmicrotime()-$time;
    Tu as ainsi le nombre (non entier) de secondes entre le d�but et la fin.
    Tu fais �a pour les deux versions (pour un script tr�s simple, passe � 10000) et tu compare. Retente plusieurs fois, �vite d'encoder un divx en m�me temps, histoire que le multitache ne brouille pas tout.

    vlavlavla
    C�dric

  9. #109
    Membre �clair� Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Par d�faut
    J'ignorai l'existence de cette fonction ( ).

    Je croyais que les benchs de ce topic �taient faits par des logiciels sp�ciaux (quoique, en y reflechissant bien, avec le bench en ligne de iubito, j'aurai du me douter qu'il y avait du php derri�re tout �a)

    En tout cas, voil� une fonction qui va m'enlever bien des doutes !!!!
    J'essaye demain et vous dis pour les $var et $var[] !

    Merci

  10. #110
    Membre �clair� Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Par d�faut
    alors je viens de tester, mais comme c'est la premi�re fois que je fais se genre de chose, j'aimerai savoir si j'ai proc�d� correctement :

    J'ai repris le script ci-dessus et j'ai fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    function getmicrotime()
            {
            list($usec, $sec) = explode(" ", microtime());
            return ((float)$usec + (float)$sec);
            }
     
    $time = getmicrotime();
    for($ct=0; $ct<100000; $ct++) {
    $var0=5;
    $var1=5;
    $var2=5;
    $var3=5;
    $var4=5;
    }
    echo getmicrotime()-$time;
    ?>
    resultat sur plusieurs essaies : entre 0.29 et 0.33

    puis

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    function getmicrotime()
            {
            list($usec, $sec) = explode(" ", microtime());
            return ((float)$usec + (float)$sec);
            }
     
    $time = getmicrotime();
    for($ct=0; $ct<100000; $ct++) {
     
    $var[0]=5;
    $var[1]=5;
    $var[2]=5;
    $var[3]=5;
    $var[4]=5;
     
    }
    echo getmicrotime()-$time;
    ?>
    resultat sur plusieurs essaies : entre 0.34 et 0.36

    SI j'ai tout compris, le r�sultat c'est que c'est plus rapide de stocker des valeurs dans des variables que dans des tableaux. J'ai juste, ou je suis compl�tement � cot� de la plaque ???

  11. #111
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Sant�

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Par d�faut
    Tout bon!
    Toutefois, si un tableau te permet de g�rer plus simplement les donn�es, je pense qu'il ne faut pas h�siter � l'utiliser. Les gros gains se font sur les algorithmes plus que sur les astuces.
    En plus pour un logiciel serveur (comme un site web) il faut prendre en compte l'utilisation m�moire, mais je n'y ai pas encore touch� et je te laisse �a en exercice ;-)
    Bonne nuit

  12. #112
    Membre �clair�
    Avatar de iubito
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Par d�faut
    un tableau va prendre l�g�rement plus de m�moire, mais si tu as besoin d'un tableau, utilise un tableau.

    Maintenant si tu veux juste 3 variables temporaires $tmp1, $tmp2, $tmp3 n'utilise pas un tableau.

    Par contre si tu veux une liste que tu peux trier, rechercher... bein c'est les tableaux qui s'imposent

  13. #113
    Membre �clair� Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Par d�faut
    Merci pour vos lumi�res !

  14. #114
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    66
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 66
    Par d�faut
    Salut,

    � votre avis il vaut mieux faire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(isset($tab[$indice])) ...
    ou bien
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(array_key_exists($indice, $tab)) ...
    :

  15. #115
    Membre exp�riment�
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Par d�faut
    J'en sais rien...

    Mais j'ai une question : comment on est cens� pr�senter le code (que faite vous, vous ?) ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?
    function maFonction() {
         instructions
    }
    ou
    function maFonction()
    {
         instructions
    }
    ou
    function maFonction()
         {
         instructions
         }
     
    ou autre chose ?
    pareil pour les if, switch, etc...

  16. #116
    Expert confirm�
    Avatar de Swo�g
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par d�faut
    Salut !

    � ce niveau, c'est de la pr�sentation, chacun fait comme il veut, pour ma part, c'est la premi�re ou seconde fa�on, mais si dans le cas d'un if par exemple, l'expression est trop complexe, il arrive aussi que je la d�compose en plusieurs lignes...

    Je ne pense pas que �a ais d'incidence notable au niveau des performances.
    R�dacteur "�clectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les R�gles du Forum - Mon Site Web sur DVP.com (D�veloppement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne r�pondrai � aucune question technique via MP, MSN ou Skype : les Forums sont l� pour �a !!! Merci de me demander avant de m'ajouter � vos contacts sinon je bloque !
    pensez � la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  17. #117
    Membre exp�riment�
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Par d�faut
    Ouais �a change rien por les performances (ce sont des "Caract�res blancs", comme les sauts de ligne ), mais c'�tait pour savoir ce que vous trouvez "joli"... Moi c'est la 2 (je trouve la 1 "d�sax�e" ).

  18. #118
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Sant�

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Par d�faut
    et moi la 3, mais bon les gouts et les couleurs...

  19. #119
    Membre �clair�
    Avatar de iubito
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Par d�faut
    moi c'est la 2. De toute fa�on aucune incidence.

  20. #120
    Membre �m�rite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par d�faut
    �a, �a m'a toujours pos� probl�me j'ai pris l'habitude d'indent� "� ma sauce", et j'avoue avoir du mal � en d�mordre...

    �a donne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <?php
    function maFonction() {
         instructions
        }
    C'est � dire un m�lange de la (1) et la (3).

Discussions similaires

  1. [D�butant] Acc�l�rer et optimiser ses scripts PHP
    Par Metallic-84s dans le forum Langage
    R�ponses: 6
    Dernier message: 24/03/2006, 12h37
  2. [MySQL] [SGBD] Script PHP/MYSQL d'access FTP
    Par ChRom dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 09/01/2006, 01h52
  3. R�ponses: 9
    Dernier message: 05/01/2006, 12h24
  4. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Proc�dural
    R�ponses: 9
    Dernier message: 01/12/2005, 16h45
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de donn�es
    R�ponses: 8
    Dernier message: 27/08/2004, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo