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

Langage PHP Discussion :

Optimiser un code procédural avec autoload


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut Optimiser un code procédural avec autoload
    Bonjour,

    Je suis en train d'optimiser une application php, disons 1/4 objet 3/4 procédural.
    C'est une application assez complexe qui charge toutes les bibliothèques (enfin quasiment) en mémoire avec des include/require au début de chaque script.
    Je voudrais charger uniquement les fonctions nécessaires. Faire cela est un travail absolument gigantesque que je voudrais éviter (je veux optimiser l'application, mais si cela prends des mois, ce n'est pas rentable).

    Je pensais donc utiliser l'autoload. Cela n'existe pas pour les fonctions (sauf erreur de ma part). Je pense donc regrouper les fonctions par utilisation dans une classe, et faire de l'autoload de classe quand cela est nécessaire.
    Le gain sera-t-il notable ? Je pense que cela dépends vraiment de l'application, et il faut tester. La littérature donne beaucoup d'éléments contradictoire.

    J'en arrive donc à mon problème.
    Il me semble raisonnable de remplacer avec les outils qui vont bien toutes les occurrences de ma_fonction($var) par $mon_objet->ma_fonction($var) par contre, il va bien falloir déclarer l'objet.
    Vu que c'est pour tester ça sur mon application, je ne me sens pas d'étudier 1 à 1 les fichiers pour déclarer l'objet si nécessaire, et si c'est pour tester les performances, mettre un if(!is_object()) $mon_objet = new Objet() devant chaque remplacement de fonction me semble une méthode de cochon ...

    Déjà, merci d'avoir pris le temps de me lire jusqu'au bout, et si vous avez une idée, une suggestion à ce propos, je suis preneur !

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    C'est une application assez complexe qui charge toutes les bibliothèques (enfin quasiment) en mémoire avec des include/require au début de chaque script.
    Es-tu sûr que c'est là que tu as un problème de performance ?
    Par experience, c'est le dernier point que je regarde quand j'ai des soucis de perfs... Donc pour ainsi dire jamais car je trouve toujours des solutions à un plus haut niveau.

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut
    J'ai des soucis de perfs lors des montées en charge.
    Je me suis fait les requêtes SQL, maintenant ça dépote à ce niveau.
    En ce moment je me fais tous les "for (count($array))". Une aberration que je trouve de partout ! Là je gagne vraiment, et je n'ai pas tout fini.

    A y être je me posais la question des includes, je suis un peu sceptique de remplacer cela pour de l'autoload, d'au l'idée de faire des tests. Ton post m'invite a attendre les résultats de la première phase d'optimisation

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut
    Avec une méthode static, je devrais pouvoir faire ce que je veux :
    Au lieu de mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $objet = new maclasse();
    $objet->methode();
    Si je mets cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maclasse::methode();
    Je peux faire un remplacement automatique et voir si les perfs changent.

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Optimiser le code pour le rendre plus performant, d'accord.
    Mais si c'est pour faire du code cracra alors là je ne suis plus d'accord !

    Les méthodes statiques sont à utiliser en toute connaissance de cause et avec parcimonie. Leur utilisation doit découler d'un design purement réfléchi et non d'un simple jeté de dé "Tiens, et si là je mettais une méthode statique?". Elles doivent répondre à un besoin de conception, autrement, bonjour la maintenance !!!

    Maintenant, je dis ça je dis rien... Si c'est pour tester, ou si c'est temporaire, pourquoi pas, mais personnellement je ne partirais pas dans cette direction...

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut
    Merci de tes commentaires. Effectivement avant de faire quelque chose de plus propre, j'aimerai tester si j'y gagne.
    Enfin bon, ce sera quand même ce que je ferais en dernier !

Discussions similaires

  1. [XL-2003] Optimisation de code avec les noms des CheckBox
    Par brownthefou dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/04/2012, 14h52
  2. comment optimiser le code avec visual c# ?
    Par isoman dans le forum C#
    Réponses: 8
    Dernier message: 30/10/2008, 15h05
  3. comment optimiser le code avec eclipse ?
    Par isoman dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 28/10/2008, 16h36
  4. optimiser mon code avec une boucle for?
    Par Invité dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 16/11/2007, 08h33
  5. [PHP-JS] Optimisation du code avec des boucles
    Par jiojioforever dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2007, 16h02

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