Problème de parsage d'un gros fichier xml de 12 Go

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

totoaussi
WRInaute discret
WRInaute discret
 
Messages: 148
Enregistré le: 22 Aoû 2010

Problème de parsage d'un gros fichier xml de 12 Go

Message le Ven Aoû 26, 2011 20:23

Bonjour,

je cherche à parser un fichier xml de 12 Go. Et je le fait en ligne de commande avec la commande php sous un serveur linux de 4Go de RAM avec un core2Duo de 2,5Ghz.

Cependant, la fonction @simplexml_load_file("fichier.xml") semble avoir des limites,

car le script de parsage s'intérrompt en affichant "Processus arreté".

Pourtant au début de mon script, j'ai mis ces lignes :

ini_set('max_execution_time','0');
ini_set('memory_limit','-1');

mais ça ne change rien.

Savez-vous d'où vient le problème ?

Merci d'avance, cordialement.


spout
WRInaute accro
WRInaute accro
 
Messages: 8402
Enregistré le: 14 Mai 2003

Re: Problème de parsage d'un gros fichier xml de 12 Go

Message le Ven Aoû 26, 2011 20:26

Un fichier XML de 12 Go 8O
Il n'y a pas comme un petit problème de conception depuis le début de l'application ?

SaintAmand
WRInaute discret
WRInaute discret
 
Messages: 90
Enregistré le: 1 Mar 2011

Re: Problème de parsage d'un gros fichier xml de 12 Go

Message le Ven Aoû 26, 2011 21:31

Bonjour,

totoaussi a écrit:Cependant, la fonction @simplexml_load_file("fichier.xml") semble avoir des limites.

Savez-vous d'où vient le problème ?


Je ne connais pas ton SimpleXML, mais vu son nom, j'imagine qu'il utilise l'API DOM, et que la fonction simplexml_load_file charge le fichier en mémoire, n'est-ce-pas ? Auquel cas, il n'est pas étonnant que cela plante.

Pour des fichiers de cette taille, il te faut utiliser un parser qui utilise l'API SAX. Il permet d'analyser ton fichier comme un flux sans avoir besoin de le charger complètement en mémoire.

SaintAmand
WRInaute discret
WRInaute discret
 
Messages: 90
Enregistré le: 1 Mar 2011

Re: Problème de parsage d'un gros fichier xml de 12 Go

Message le Ven Aoû 26, 2011 21:38

spout a écrit:Un fichier XML de 12 Go 8O
Il n'y a pas comme un petit problème de conception depuis le début de l'application ?


Pas forcément. Peut-être s'amuse t-il avec OpenStreetMap. Planet.osm c'est un gros XML de plus de 160 Go.

Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1847
Enregistré le: 31 Aoû 2007

Re: Problème de parsage d'un gros fichier xml de 12 Go

Message le Sam Aoû 27, 2011 10:11

A mon avis, tu vas devoir le faire avec "autre chose" que PHP, en perl par exemple...
Est-ce que tu as des erreurs pour ton script :
Code: Tout sélectionner
ini_set('display_errors', 1);
error_reporting(E_ALL);

Ca pourrait peut-être déjà te donner des pistes.


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :