bheller.com Index du Forum
bheller.com
Site web de Bruce Heller
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Google
[PHP] maximum execution time...

 
Poster un nouveau sujet   Répondre au sujet    bheller.com Index du Forum -> Programmation
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
the beginner
Expert
Expert


Inscrit le: 12 Fév 2003
Messages: 59

MessagePosté le: Dim Aoû 24, 2003 6:36 pm    Sujet du message: [PHP] maximum execution time... Répondre en citant

Fatal error: Maximum execution time of 30 seconds exceeded in ...

voilà l'erreur que j'obtiens quand j'exécute ma page php.
cela se produit alors que j'utilise "imagecreatefromJPEG" en envoyant diverses données vers ma base de données...

il est vrai que je passe en revue un grand nombre de fichiers (jpeg plus particulièrement) donc je comprend que le traitement de la page dure plus de 30 secondes mais voilà je ne sais pas comment optimiser le tout pour que cela soit moins long...

comment puis-je faire???

merci et a+++
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
bruce
Superviseur
Superviseur


Inscrit le: 18 Avr 2001
Messages: 8294
Localisation: In da beat we trust !

MessagePosté le: Jeu Aoû 28, 2003 3:07 am    Sujet du message: Répondre en citant

Si tu donnais un peu du source...
_________________
A+++
Bruce aka Lemmings
www.bheller.com
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur MSN Messenger
the beginner
Expert
Expert


Inscrit le: 12 Fév 2003
Messages: 59

MessagePosté le: Sam Aoû 30, 2003 10:43 am    Sujet du message: voilà un peu de source:-))) Répondre en citant

comme tu me l'a demandé voilà le souce de la plus grosse boucle du script :

Code:
  for ($A=0; $A<count($TABLEAU); $A++) {
    $ID_DOSSIER = 1; /* ID POUR CHAQUE DOSSIER, RECOMMENCE A 1 AU DEBUT DU DOSSIER */
    $TABLEAU[$A]["CHEMIN_COMPLET"] = str_replace("\\", "/", $TABLEAU[$A]["CHEMIN_COMPLET"]);

    $OPEN_DIR2 = opendir($TABLEAU[$A]["CHEMIN_COMPLET"]);
    chdir($TABLEAU[$A]["CHEMIN_COMPLET"]);

    while ($NOM_FICHIER = readdir($OPEN_DIR2)) {
      if (is_file($NOM_FICHIER)) {
        $FILE_AND_EXTENSION = explode(".", $NOM_FICHIER);

        if (($FILE_AND_EXTENSION[1] == "jpg") || ($FILE_AND_EXTENSION[1] == "JPG")) {

/* VARIABLES CONCERNANT LES IMAGES ET LES APERCUS */

          $HANDLE = ImageCreateFromJPEG($TABLEAU[$A]["CHEMIN_COMPLET"].$NOM_FICHIER);
          $DX = ImageSX($HANDLE);
          $DY = ImageSY($HANDLE);

          if (($DX == 1024) || ($DX == 640)) {
            /* PETITE IMAGE */
            $WIDTH_PTE_IMG = 128;
            $HEIGHT_PTE_IMG = 96;
            /* FNTR APERCU */
            $WIDTH_FNTR_APERCU = 670;
            $HEIGHT_FNTR_APERCU = 510;
          }
          elseif (($DX == 768) || ($DX == 480)) {
            /* PETITE IMAGE */
            $WIDTH_PTE_IMG = 96;
            $HEIGHT_PTE_IMG = 128;
            /* FNTR APERCU */
            $WIDTH_FNTR_APERCU = 510;
            $HEIGHT_FNTR_APERCU = 670;
          }
          ImageDestroy($HANDLE);
          /* FIN PARAMETRES IMAGE, FNTR APERCU */

/* FIN VARIABLES CONCERNANT LES IMAGES ET LES APERCUS */

          /* LISTE DES VARIABLES A TRANSMETTRE */
          $CHEMIN_COMPLET = $TABLEAU[$A]["CHEMIN_COMPLET"];
          $DOSSIER = $TABLEAU[$A]["DOSSIER"];
          $PHOTO = $NOM_FICHIER;
          $LARGEUR_INIT = $DX;
          $LARGEUR = $WIDTH_PTE_IMG;
          $HAUTEUR = $HEIGHT_PTE_IMG;
          $LARGEUR_FNTR = $WIDTH_FNTR_APERCU;
          $HAUTEUR_FNTR = $HEIGHT_FNTR_APERCU;
          /* FIN LISTE DES VARIABLES A TRANSMETTRE */

/* INSERTION DES NOMS DES FICHIERS DANS LA BASE DE DONNEES */
          $INSERT_NOM_PHOTO = @mysql_query("INSERT INTO photos ".
               "( ".
                "ID, ID_DOSSIER, CHEMIN_COMPLET, DOSSIER, PHOTO, ".
                "LARGEUR_INIT, LARGEUR, HAUTEUR, LARGEUR_FNTR, HAUTEUR_FNTR ".
               ") ".
               "VALUES ".
              "( ".
                  "'$ID', '$ID_DOSSIER', '$CHEMIN_COMPLET', '$DOSSIER', '$PHOTO', ".
                  "'$LARGEUR_INIT', '$LARGEUR', '$HAUTEUR', '$LARGEUR_FNTR', '$HAUTEUR_FNTR' ".
               ")");
/* FIN INSERTION DES NOMS DES FICHIERS DANS LA BASE DE DONNEES */
          $ID_DOSSIER++;
        }
      }
    }
    closedir($OPEN_DIR2);
  }



c'est cette boucle for qui prends le plus de temps à l'exécution
le reste n'est que fioriture...

sur ce a+++ et merci

Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
bruce
Superviseur
Superviseur


Inscrit le: 18 Avr 2001
Messages: 8294
Localisation: In da beat we trust !

MessagePosté le: Sam Aoû 30, 2003 6:57 pm    Sujet du message: Répondre en citant

Utilise la balise "code" quand tu veux mettre du source G édité ton message.

Bon sinon à premiere vue je vois pas de problème mais c'est possible que le script soit long si le serveur de fichier est lent ou que la machine soit peu puissante...
_________________
A+++
Bruce aka Lemmings
www.bheller.com
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur MSN Messenger
the beginner
Expert
Expert


Inscrit le: 12 Fév 2003
Messages: 59

MessagePosté le: Sam Aoû 30, 2003 7:52 pm    Sujet du message: je me disais aussi Répondre en citant

c'est vrai que mon mesg à une autre gueule que qd je l'ai post tt à l'heure.

sinon tu n'as pas de solution pour mon prob?
y'a pas moyen de mettre une pause dans un script, ou alors un moyen pour arreter et reprendre le script ake apparement sur easyphp le temps d'exécution max c'est 30 secondes mais pour free il est de 5 sec, alors pour charger un max d'info c'est pas pratique...

et pour la puissance de la machine je pense pas que ce soit ça
ou alors j'ai vraiment besoin d'un truc surpuissant

sinon tant pis j'essayerai de trouver autre chose...

a+++ et merci
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
bruce
Superviseur
Superviseur


Inscrit le: 18 Avr 2001
Messages: 8294
Localisation: In da beat we trust !

MessagePosté le: Sam Aoû 30, 2003 8:53 pm    Sujet du message: Re: je me disais aussi Répondre en citant

the beginner a écrit:
c'est vrai que mon mesg à une autre gueule que qd je l'ai post tt à l'heure.

sinon tu n'as pas de solution pour mon prob?
y'a pas moyen de mettre une pause dans un script, ou alors un moyen pour arreter et reprendre le script ake apparement sur easyphp le temps d'exécution max c'est 30 secondes mais pour free il est de 5 sec, alors pour charger un max d'info c'est pas pratique...

et pour la puissance de la machine je pense pas que ce soit ça
ou alors j'ai vraiment besoin d'un truc surpuissant

sinon tant pis j'essayerai de trouver autre chose...

a+++ et merci


Je sais pas trop là à lire le script comme ça je vois pas de "problème" mais g pas été voir en détail... Essaye de chronometrer chaque étape (affichage d'un timestamp à chaque boucle) pour voir ou ça coince.
_________________
A+++
Bruce aka Lemmings
www.bheller.com
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur MSN Messenger
the beginner
Expert
Expert


Inscrit le: 12 Fév 2003
Messages: 59

MessagePosté le: Dim Aoû 31, 2003 10:02 am    Sujet du message: suite... Répondre en citant

j'ai fait comme tu m'as dit (utilisation d'un timestamp) mais je ne trouve rien d'anormal.
le problème vient peut-être du fait que les dossiers à parcourir contiennent presque 300 fichiers pour un total de 100Mo???

je m'explique sur cette quantité : j'ai fait un truc qui me permet (comme zoombrowser par exemple) de faire un diaporama et des aperçus de photos.

maintenant tu vas me dire pourquoi faire un truc toi même quand tout existe déjà??? mais pour le "fun" (y'en a qui ne savent plus comment s'amuser )...
mais pour éviter ces problèmes eske tu me conseillerais par exemple de le programmer par l'intermédiaire d'un logiciel comme visual c++ ou borland c++ builder et pour cela abandonner l'histoire du diaporama par la page web???

sur ce merci et a+++
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
bruce
Superviseur
Superviseur


Inscrit le: 18 Avr 2001
Messages: 8294
Localisation: In da beat we trust !

MessagePosté le: Mar Sep 02, 2003 1:13 am    Sujet du message: Répondre en citant

Heu non c faisable aussi mais dans ce cas limite le nombre de tof par pages...
_________________
A+++
Bruce aka Lemmings
www.bheller.com
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur MSN Messenger
the beginner
Expert
Expert


Inscrit le: 12 Fév 2003
Messages: 59

MessagePosté le: Mar Sep 02, 2003 8:49 am    Sujet du message: okai merci Répondre en citant

c'est ce que j'ai fait finalement...
merci et a+++
_________________
comme pour tout mes messages -> merci et a+++
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    bheller.com Index du Forum -> Programmation Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com