Page 1 sur 1

connaitre l'activité de son serveur ?

Posté : 13 févr. 2006, 15:03
par VaN
Hello,

je suis en train de développer un forum, et j'aimerais savoir si ce que je suis en train de coder est lourd pour le serveur ou non, pour savoir si je dois songer à optimiser mon code.

Est-il possible de savoir quel est le travail effectué par un serveur ? Est-ce possible en local, sur EasyPHP ?

Re: connaitre l'activité de son serveur ?

Posté : 13 févr. 2006, 15:39
par Hubert Roksor
[...] savoir si je dois songer à optimiser mon code.
Parce que tu n'avais pas prévu de l'optimiser déjà ? :roll:

Concernant l'optimisation, il y a deux "zones" à couvrir. Premièrement le côté SQL, en t'assurant que chacun de tes requêtes utilise un index (sauf évidemment les requêtes qui récupèrent l'intégralité d'une table). Pour t'aider dans cette tâche je te conseille d'ajouter un outil de reporting à ton... euh, je viens de m'apercevoir que tu n'utilisais peut-être pas de couche d'abstraction d'accès à la base de données (DBAL). En tout cas, si tu en utilises un jette un œil du côté de phpBB 3 pour te faire une idée de ce que tu peux faire. [ screenshot ]

Quant au côté PHP, c'est probablement le plus vaste et le plus riche. Ici, pas de recette magique, vérifie en premier tout ce qui se trouve dans une boucle. Tu peux installer des outils de "code coverage" mais là je n'en ai aucun à te proposer, désolé. Si tu fais des tests de chrono (un simple microtime() au début et à la fin du bloc à tester) assure-toi que les valeurs ne se dégradent pas trop vite lorsque la charge augmente. Tu peux simuler la charge serveur avec l'utilitaire "ab.exe" dans le répertoire bin/ de ton dossier Apache.

Posté : 13 févr. 2006, 16:48
par VaN
eh.. ok. j'ai à peu près rien compris. :oops:

le microtime(), c'est ce qui permet de trouver une estimation du temps necessaire pour générer la page ? (comme on voit parfois, "page générée en 0.21 sec. 81% PHP, 19% SQL)

Posté : 13 févr. 2006, 17:05
par Hubert Roksor
Désolé, je n'avais pas fait attention au forum dans lequel on se trouve. Si tu regardes dans le manuel PHP (n'importe quel programmeur le fait dix fois par jour :D) tu verras la définition de microtime(). En mesurant le temps au début et à la fin du script tu saurais combien de temps il a réelement pris pour s'exécuter.

Maintenant... je te dis ça en toute franchise pour éviter que tu ne perdes ton temps, mais si tu n'es pas familier avec les notions que j'ai évoqué dans mon précédent post tu ne parviendras pas à optimiser ton script. Je te conseillerais plutôt de prendre le chemin inverse, renseigne-toi sur l'optimisation de scripts en général, et ensuite seulement essaie d'appliquer ces principes à tes propres scripts. Je n'ai pas de lien sous la main, mais "optimisation php" dans Google devrait déjà être un bon départ. Si tu parles anglais, "php optimization" marche aussi.

Bonne chance ;)