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 :

EasyPHP : Lenteurs scripts


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 20
    Par défaut EasyPHP : Lenteurs scripts
    Bonjour,

    Voilà, je travaillais sur un projet sous EasyPHP-5.3.2i lorsque je suis passé de XP à Windows 7.

    J'ai donc installé la dernière version d'EasyPHP et repris mon projet, notamment en copiant mes données MySQL directement d'un répertoire Data à l'autre.

    Tout cela a fonctionné, mais malheureusement l'exécution des scripts est bien plus lente qu'auparavant, notamment les accès à la base.

    A noté que j'ai suivi le superbe cours de Guillaume Rossolini, et j'utilise donc par exemple une classe MyPDO, et la technique d'autoload.

    Malgré de nombreux essais dans les fichiers de config php et apache, et de nombreuses recherches sur le web, impossible de corriger ces lenteurs.

    Auriez vous une idée sur ce souci ?

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de Stopher
    Homme Profil pro
    Responsable technique
    Inscrit en
    Juin 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 198
    Par défaut
    Salut ,

    Il faut avant tout trouver d'ou provient cette lenteur .

    du serveur Mysql ou de tes scripts php ... / ... .

    Si tu te connectes en ligne de commande sur ton serveur mysql , l'exécution d'une de tes requête , est-elle aussi lente ?

    Ou fait tes tests avec phpmyadmin , tu sera fixé ... si l'exécution est instantané ( ou presque ) , c'est le problème doit provenir de tes scripts .

    Que disent les logs ? pas d'erreur ? pas de warning ou autre ?

    ( logs apache et mysql )

    Ch.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 20
    Par défaut
    Merci de ta réponse Stopher.

    J'ai exécuter une requête via phpMyAdmin (un simple select utilisé ds mes scripts), et la réponse a été immédiate (Traitement en 0.0010 sec).

    Rien d'alarmant non plus dans les logs.

    Par intuition, je me demande si cela n'aurait pas un lien avec le mécanisme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function generic_autoload($class)
    {
        require_once str_replace('_', '/', $class).'.php';
    }
    qui me permet de charger automatiquement les classes qui sont placées dans le répertoire "objet".

    J'ai cru comprendre que cela pouvait détériorer les perfs. Mais pourquoi je ne rencontrerai ce pb qu'après avoir migré ?

  4. #4
    Membre expérimenté Avatar de Stopher
    Homme Profil pro
    Responsable technique
    Inscrit en
    Juin 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 198
    Par défaut
    Il y a un traitement supplémentaire sur chaque inclusion , donc oui forcement le temps de traitement sera plus long , mais pas au point de le ressentir , la différence est normalement trop minime .

    De quel ordre sont ces ralentissements ? ms / sec / +

    Est-ce l'acces à la base ? les remontées de données ? ou le traitement sur les résultats de ta requête ?

  5. #5
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function generic_autoload($class)
    {
        require_once str_replace('_', '/', $class).'.php';
    }
    Argh, je vais mourir, ce que c'est sale ! Un répertoire de classes qui s'appelle 'objet' ?? Tu es en PHP 5.3 non ? utilise les namespaces avec un véritable autoloader ! je te mets un tuto en anglais en PJ.
    Remarque, comme l'a souligné Stopher, ton problème ne devrait pas être là.

    Est ce qu'on peut avoir un bout de ton algo pour voir ou peuvent se trouver les goulots ?
    Images attachées Images attachées

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 20
    Par défaut
    Bonjour,

    J'ai enfin trouvé le temps de me replonger dans mon projet et notamment de travailler sur ces pb de perf.

    Après différents tests, je me suis apercu que les ralentissements étaient provoqués par mes constructeurs de classe PDO.

    Or en parcourant les fichiers de conf, j'avais vu qu'en changeant de version d'EasyPHP, tous les localhost avaient été remplacés par l'adresse IP locale.

    J'ai donc essayé de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = new PDO('mysql:host=localhost;dbname=db_dev', '****', '****');
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = new PDO('mysql:host=127.0.0.1;dbname=db_dev', '****', '****');
    Et figurez vous que cela a solutionné le truc !
    L'exécution de mes scripts est maintenant instantanée, rien à voir avec avant !

    Je ne suis pas un expert en réseau, donc je ne vois pas comment la translation du localhost vers 127.0.0.1 peut causer de tels ralentissements !?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Par défaut locahost vers 127.0.0.1 = Radical
    J'avais le même soucis.
    Le changement a été radical.
    Merci

Discussions similaires

  1. Lenteur script pour API
    Par orbeman dans le forum VBScript
    Réponses: 2
    Dernier message: 02/01/2012, 11h09
  2. [EasyPHP] redémarraer EasyPHP automatiquement avec un script php
    Par swissikarim dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/02/2011, 22h12
  3. lenteur sur un script simple
    Par syntaxerror dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/06/2010, 19h43
  4. executer un script cgi en c avec easyphp
    Par fayza dans le forum Autres langages pour le Web
    Réponses: 0
    Dernier message: 20/09/2008, 18h28
  5. Lenteur soudaine d'un script
    Par Melmock2 dans le forum Administration
    Réponses: 16
    Dernier message: 08/08/2008, 18h42

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