|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2010 Messages : 78 ![]() |
Bonjour, j'ai un soucis que je n'arrive pas à corriger.
J'ai une fonction qui me génère une partie d'un flux xml à partir d'une réponse de webservice. Cela fonctionne lorsque j'appelle ma fonction 3 ou 4 fois, mais dès que je veux appeler cette fonction 40, 50 ou 100x, j'ai de gros problème de mémoire. Qu'est-ce que je peux optimiser pour avoir un fonctionnement correct? Merci par avance pour vos réponses Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Beh libérer la mémoire sur les variables qui n'ont plus lieu d'être utilisées. :/
http://fr2.php.net/unset |
|
|
00
|
|
|
#3 | |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2010 Messages : 78 ![]() |
Citation:
Existe-t-il une fonction pour faire un unset global de mes variables fonction? Merci pour ta réponse |
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Après il faut tout de même relativiser...
Un format XML n'est pas fait pour accueillir des centaines de méga-octets. Ton flux XML généré à chaque appel de fonction est conséquent. Et devrait l'être encore plus si je ne m'abuse puisque tu fais une boucle foreach mais tu réécrases les itération précédente d'ajout dans la variable $xml. Ajoutons à cela les variables non initialisées et inexistantes dans certains cas ($periodeOuverture). Bref c'est une sacrée usine à gaz... As-tu réellement l'utilité de générer un fichier xml de plusieurs milliers d'articles ? (100 appels de fonctions * x article(s)) D'autant plus que ce que tu fais c'est regrouper des données déjà existantes au format XML. Pourquoi ne pas garder cet actuel agencement ? |
|
|
00
|
|
|
#5 | |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2010 Messages : 78 ![]() |
Citation:
Je dois reformater ces données pour avoir un nouveau flux permettant d'insérer les données en BDD. Je n'ai ni la main sur le format de sortie du WS ni sur le format d'entrée du flux qui alimente la base. Je n'ai donc pas d'autre solution (si non, je suis preneur Le flux XML final que je dois obtenir est d'environ 2Mo...Rien d'affolant me semble-t-il? Comment optimiser tout cela pour que ça fonctionne quel que soit le nombre d'appel à la fct? |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
En effet un fichier de 2mio ne peut te porter souci.
Pourrais-tu nous dire quel est l'erreur PHP affichée qui te porte préjudice ? Sinon au niveau de la libération des ressources il faudrait au minimum faire un unset($fluxXml) lorsque tu ne l'utilises plus. |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Si c'est à faire qu'une fois....
http://php.net/manual/fr/function.set-time-limit.php Tu changes la limite de temps, tu fais ta fonction, tu la lances et tu vas boire un café?
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
Copyright © 2000-2012 - www.developpez.com