Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2011, 10h22   #1
Invité régulier
 
Inscription : février 2008
Messages : 20
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2008
Messages : 20
Points : 6
Points : 6
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.
wishmerhill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 10h48   #2
Membre régulier
 
Avatar de Stopher
 
Homme christophe de saint leger
Responsable de service informatique
Inscription : juin 2004
Messages : 105
Détails du profil
Informations personnelles :
Nom : Homme christophe de saint leger
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : juin 2004
Messages : 105
Points : 82
Points : 82
Envoyer un message via MSN à Stopher Envoyer un message via Skype™ à Stopher
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.
__________________
Lindev.fr
Stopher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 14h35   #3
Invité régulier
 
Inscription : février 2008
Messages : 20
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2008
Messages : 20
Points : 6
Points : 6
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 :
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é ?
wishmerhill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 15h24   #4
Membre régulier
 
Avatar de Stopher
 
Homme christophe de saint leger
Responsable de service informatique
Inscription : juin 2004
Messages : 105
Détails du profil
Informations personnelles :
Nom : Homme christophe de saint leger
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : juin 2004
Messages : 105
Points : 82
Points : 82
Envoyer un message via MSN à Stopher Envoyer un message via Skype™ à Stopher
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 ?
__________________
Lindev.fr
Stopher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 13h05   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Code :
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 ?
Fichiers attachés
Type de fichier : pdf How to Use PHP Namespaces.pdf (99,6 Ko, 8 affichages)
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 19h18   #6
Invité régulier
 
Inscription : février 2008
Messages : 20
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2008
Messages : 20
Points : 6
Points : 6
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 :
$db = new PDO('mysql:host=localhost;dbname=db_dev', '****', '****');
par :
Code :
$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 !?
wishmerhill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 12h15   #7
Invité régulier
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 8
Points : 8
Par défaut locahost vers 127.0.0.1 = Radical

J'avais le même soucis.
Le changement a été radical.
Merci
gerald@23juin.net est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h47.


 
 
 
 
Partenaires

Hébergement Web