IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Écriture de nombreuses lignes


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut Écriture de nombreuses lignes
    Bonjour,

    C'est plus une question d'optimisation qu'un problème que je voulais vous soumettre...

    Je dois écrire un fichier xml ce dernier est compose d'un tag <entry> complexe contenant 6 tag. Le tag <entry> va peut être répété plus de 100 fois.
    Je me demandais se cela fait une différence si dans le fichier ligne par ligne comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    foreach ($tracks_ar as $track)	{
    			// Ecriture du tag de piste
    			fwrite($handle, "\t<entry>\n");
    			// Ecriture du titre
    			fwrite($handle, "\t\t<title>" . $track['titre'] . "</title>\n");
    			// Ecriture de l'auteur
    			fwrite($handle, "\t\t<author>" . $track['auteur'] . "</author>\n");
    			// Ecriture du titre de l'album
    			fwrite($handle, "\t\t<param name=\"WM/AlbumTitle\" value=\"" . $track['album'] . "\" />\n");
    			// Ecriture de l'image de la piste
    			fwrite($handle, "\t\t<banner href=\"" . $track['image'] . "\" />\n");
    			// Ecriture de la durée de la piste
    			fwrite($handle, "\t\t<duration value=\"" . $track['duree'] . "\" />\n");
    			// Ecriture du chemin de la piste
    			fwrite($handle, "\t\t<ref href=\"" . $track['track'] . "\" />\n");			
    			fwrite($handle, "\t</entry>\n");
    		}
    ou si j'écris le fichier en une seule fois comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    foreach ($tracks_ar as $track)	{
    			// Ecriture du tag de piste
    			$_xml.="\t<entry>\n";
    			$_xml.="\t\t<title>" . $track['titre'] . "</title>\n";
    			// Ecriture de l'auteur
    			$_xml.="\t\t<author>" . $track['auteur'] . "</author>\n";
    			// Ecriture du titre de l'album
    			$_xml.="\t\t<param name=\"WM/AlbumTitle\" value=\"" . $track['album'] . "\" />\n";
    			// Ecriture de l'image de la piste
    			$_xml.="\t\t<banner href=\"" . $track['image'] . "\" />\n";
    			// Ecriture de la durée de la piste
    			$_xml.="\t\t<duration value=\"" . $track['duree'] . "\" />\n";
    			// Ecriture du chemin de la piste
    			$_xml.="\t\t<ref href=\"" . $track['track'] . "\" />\n";			
    			$_xml.="\t</entry>\n";
    		}
    		fwrite($handle,$_xml);
    Ma question concerne autant le temps d'ecriture que la ressource utilisé par le serveur

    Merci de votre réponse

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    A mon avis la deuxième solution est la plus efficace, un seul accès au fichier me semble plus indiqué que plusieurs centaines.

    A moins que tu dépasses la mémoire allouée, mais avec seulement quelques lignes de texte il doit te rester de la marge.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    je prevois entre 1000 et 2000 lignes a ecrire a chaqe fois, est ce que cela peut surcharger la mémoire, je n'ai aucune notion de tout cela...

    Merci de la réponse

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    comme le dit N1bus, un accès vaut mieux que 2000, de cette manière ton script n'ouvrira le fichier qu'une seule fois.

  5. #5
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Citation Envoyé par epeichette Voir le message
    je prevois entre 1000 et 2000 lignes a ecrire a chaqe fois, est ce que cela peut surcharger la mémoire, je n'ai aucune notion de tout cela...

    Merci de la réponse

    Il faut faire des essais : cela dépend de la longueur des lignes.

    Par exemple pour un dump d'une base de données, j'ai été obligé de couper un script pour générer plusieurs fichiers car la mémoire était dépassée.

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/11/2009, 11h28
  2. Optimiser l'insertion de très nombreuses lignes depuis .NET
    Par zegreatclan dans le forum Accès aux données
    Réponses: 3
    Dernier message: 12/10/2009, 08h05
  3. Ré-écriture d'une ligne dans la fenetre
    Par Yorel2006 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 24/03/2009, 18h47
  4. Performance: text/blob ou nombreuses lignes ?
    Par kramer Mc Barreth dans le forum Administration
    Réponses: 1
    Dernier message: 06/11/2007, 15h03
  5. Réponses: 5
    Dernier message: 10/08/2006, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo