[RESOLU] Conditions php à répétitions et lenteur, optimisation possible ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Conditions php à répétitions et lenteur, optimisation possible ?

Re: Conditions php à répétitions et lenteur, optimisation possible ?

par Hohenheim » 27 août 2019, 20:59

Merci @rthur
Visiblement c'est un enchainement if/else if/else qui ralenti le tout, si j'enlève le else if, ça redevient fluide. Donc j'ai repensé les variables.

Merci, je ne connaissais pas et ça m'a bien aidé =D>

Re: Conditions php à répétitions et lenteur, optimisation possible ?

par @rthur » 26 août 2019, 22:49

Difficile d'optimiser un code sans le voir et sans l'avoir conçu :-/

Regarde la fonction PHP microtime(), et notamment l'exemple 3 de la doc :
https://www.php.net/manual/fr/function.microtime.php
ça va te permettre de mesurer précisément le temps d'exécution de ton script. Place des mesures à différents endroits pour déterminer où ça prend le plus de temps.

Conditions php à répétitions et lenteur, optimisation possible ?

par Hohenheim » 26 août 2019, 11:05

Bonjour à tous et à toutes,

Ca fait des années que je m'intéresse très tranquillement à PHP mais j'ai toujours un niveau très débutant :mrgreen:

Mon petit projet personnel que je réalise pour le fun en ce moment c'est de :
1. tirer une image randomisée d'un dossier
2. afficher son nom sans l'extension ni ce qui suit le underscore
3. afficher un mot aléatoire via un array_rand à coté du nom

jusque là pas de soucis.

Ensuite suivant le array_rand j'ai une cascade de conditions.
Ca marche très bien, mais c'est très lent (+40 secondes pour afficher la page qui est sur USBWebserver sur une clé USB, mais avant la série de cascade, ça s'affichait de suite).

En gros :
array_rand (le 3.)
if ► texteA ► solution A, solution B…
if solution A ► résultat 1, résultat 2…
if résultat 1 ► écrire solution A + résultat 1 + texte z

ça ne descend pas au dela de 3 if en profondeur, mais j'ai 4 ou 5 fois ce genre de conditions à répétitions.
Y a t il un moyen de moins saturer le serveur en optimisant mon écriture ?

Il y a quelques temps je proposai toutes les solutions dans un seul array_rand, la liste était longue mais ça allait très vite. Mais statistiquement les chances n'étaient pas les mêmes d'avoir tel ou tel résultat, donc je voulais remettre ça bien. Mais maintenant que statistiquement c'est bon, c'est lent :mrgreen:

Si quelqu'un peut m'aider, merci beaucoup =D>