idée de la consommation RAM d'un bon script PHP ? - PHP - Programmation
Marsh Posté le 09-03-2009 à 06:47:09
utilise plutot valgrind pour mesurer tes performances : http://osterman.com/wordpress/2006 [...] d-with-php
et sino , ben ca depend de tes objets
Marsh Posté le 11-03-2009 à 10:03:31
oui, j'imagine... Après niveau optimisations il y avait bien des petits trucs tout cons auquels penser mais, apparemment rien ne semble vraiment efficaces vus que bien souvent c'est lié aux versions de PHP
Exemple avec foreach et le while/list qui est plus rapide en fonction des versions de PHP...
Y a t-il des petites choses toutes bêtes qui peuvent influencer les performances ? des sites spécialisés pour ca ?
Marsh Posté le 11-03-2009 à 10:51:24
Salut,
Peut-etre trouveras-tu des informations intéressantes dans cett conférence (en anglais) de Rasmus Lerdorf (le créateur de PHP).
Les "slides" sont dispos ici.
Marsh Posté le 11-03-2009 à 11:23:52
Un site tres interessant sur les petits trucs a savoir pour booster un peu son code :
http://www.phpbench.com/
Apres c'est des micros optimisations, des fois changer un algo permet des optimisations bcp plus drastiques : exemple, rajouter un id dans une table pour eviter plusieurs jointures augmente la taille de la bdd mais peut accelerer les requetes sql (FROM t1 LEFT JOIN t2 ON t1.id1=t2.id1 LEFT JOIN t3 ON t2.id2=t3.id2 => rajouter id2 dans t1), etc...
Marsh Posté le 12-03-2009 à 11:05:37
Voilà, en fait c'est ça le délire, je travaille en agence web, et je fais des applications objets pour des clients dont généralement la logique c'est "On a des gros besoins, et on veut payer le moins possible , donc hébergé sur un serveur minable mutualisé"
Et là le souci c'est qu'on a beau avoir une application dont le dev est performant, sur un serveur pourri, le résultat sera pourri pour peu que l'application soit un tantinet gourmande... Après j'essaye d'arrondir les angles comme je peux avec du cache justement, mais j'ai dans l'idée qu'on peut faire toujours plus... sans pour autant coder comme un porc
Marsh Posté le 12-03-2009 à 14:22:17
Ben ouais mais bon ca fait mal au cul de faire un truc nikel et de foutre ca sur un environnement incapable de faire tourner le truc...
Pour en revenir au sujet, ou est-ce que je peux trouver un référentiel correct ?
Je veux dire une page qui se charge, normalement le temps de construction serveur de la page pour moi ne doit pas dépasser 200ms, mais ce n'est qu'une valeur arbitraire après laquelle on voit que le script est long a charger... Donc pas vraiment une valeur fiable !
Ca constitue une bonne valeur ? Sans faire intervenir le traffic (cad un seul thread)
Marsh Posté le 12-03-2009 à 17:32:07
the_bigboo a écrit : Je veux dire une page qui se charge, normalement le temps de construction serveur de la page pour moi ne doit pas dépasser 200ms, mais ce n'est qu'une valeur arbitraire après laquelle on voit que le script est long a charger... Donc pas vraiment une valeur fiable ! |
Nous avons les mêmes critères, ne pas dépasser les 200ms ( si possible ), avec un serveur mutu ton sql doit souffrir ! restent sqlite si tes requetes sont trop handicapantes.
Pour Memory_get_usage, c'est pas vraiment ce qu'il manque en vérité .. à peu près 500ko en moyenne par page
Bon courage (changez le de serveur)
Marsh Posté le 12-03-2009 à 18:04:30
des fois, un tuning du SGBD peut largement améliorer les perfs, genre optimiser les index, augmenter la taille du cache des requêtes, augmenter la taille pour les tables ouvertes ou temporaires...! Sur du MySQL, pour une appli web, j'ai divisé par 5 le temps de chargement d'une page gourmande en requêtes en tunant MySQL
Marsh Posté le 12-03-2009 à 20:44:28
tu as un exemple de conf que je teste ?
ils parlent souvent de mysql_pconnect .. le truc qui a tendance à bloquer quand le nombre de connexions maximales a été atteint ..
Marsh Posté le 12-03-2009 à 20:46:48
Recherche le script tuning-primer.sh, c'est un bon début pour apprendre a bien conf ton serveur mySQL
Marsh Posté le 13-03-2009 à 10:00:34
J'ai, entre autre, augmenté (par rapport à la valeur par défaut) les valeurs de ces variables :
max tmp tables
myisam max sort file size
myisam sort buffer size
query cache limit
query cache size
query cache type à ON
Après, faut adapter par rapport à ce qui est présenté comme stats par phpmyadmin, item "afficher l'état du serveur".
Marsh Posté le 13-03-2009 à 16:35:08
le fichier est my.cnf ?? si c'est le cas il est très petit ..
faut il effectuer mysqld restart après son édition ?
Code :
|
Je vois pas trop les variables citées ci dessus .. que je vois via phpadmin .. weird ..
Faut-il les rajouter ainsi ?
Code :
|
si tu as des indications plus précises, ce serait sympa
Marsh Posté le 13-03-2009 à 17:08:17
Le fichier est ben my.cnf
Tu ne trouvera pas TOUTES les variables dedans lol
Certaines sont par défauts et non présentes.
Je te répète : prend tuning-primer.sh, ça t'aidera à comprendre des choses.
Edit: http://www.day32.com/MySQL/
Marsh Posté le 13-03-2009 à 18:53:23
je sais j'ai regardé le script mais .. access denied for root, alors j'ai zappé ..
Je préférais avoir un bon exemple de conf à éditer à la mano sans script exterieur
Marsh Posté le 13-03-2009 à 19:03:06
IL n'y a pas de bon script de conf car tout dépend de TON utilisation, ce que tuning-primer.sh va justement détecter en fonction des informations statistiques que mySQL stock.
Toutes les bases n'ont pas besoins de la même conf et ce même si elles sont sur des serveurs WEB de même architecture technique ...
Marsh Posté le 13-03-2009 à 21:39:51
moui ce sont que des stats d'utilisation .. cela n'aide pas à configurer le fichier au passage ..
Marsh Posté le 14-03-2009 à 09:49:48
Bah si, car si tu vois que ton max_connexion est atteint régulièrement, c'est un piste de réglage, si ton max_files_open est atteint aussi ... etc
Marsh Posté le 14-03-2009 à 10:11:20
c'est pas faux d'un côté .. on retrouve aussi dans "etat du serveur"
bref perso .. valeurs à modifier quand on a des soucis, sinon aucun gain véritable de rapidité
Marsh Posté le 18-12-2009 à 11:17:39
Bonjour
je remonte le sujet
Je m'intéresse également au sujet, j'ai trouvé un article parlant d'un garbage collector en PHP5.3 : http://blog.pascal-martin.fr/post/ [...] on-memoire
Le souci c'est que dans et article, l'auteur ne prned pour exemple que des classes avec des références cycliques, mais est-ce qu'il y a moyen de "dumper" la mémoire de PHP, pour voir toutes les variables utilisées et leur conso mémoire ?
Marsh Posté le 20-12-2009 à 11:48:13
sympa cette fonction !
Merci, j'ai de quoi décortiquer.
Marsh Posté le 27-12-2009 à 16:14:53
t'as eté voir du coté de xdebug ? t'as des fonctions intéressantes
http://xdebug.org/docs/
Marsh Posté le 09-03-2009 à 01:11:19
Salut
Voilà, je me pose une question, je fais du PHP depuis un bout de temps et maintenant que je touche a des sites à très forts trafics je m'intéresse de plus en plus aux performances du code.
donc je me suis penché sur la fonction memory_get_usage. Mais voilà je n'ai aucune idée de la façon dont interpréter les données.
j'ai constitué un framework avec une collection de l'ordre d'une trentaine d'objet, et j'obtiens des pages dont la consommation atteint 2.5Mo.
Après rien ne me permet d'évaluer si c'est bon ou pas, donc j'aurais besoin de vos lanternes, si vous avez un site à donner...
Merci par avance
Message édité par the_bigboo le 09-03-2009 à 01:11:35