🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52054

Re: alternatywa dla XML::Parser ?

#52054
From: MaW
Date: Mon, 22 Nov 2010 17:23
24 lines
1869 bytes
Użytkownik "Jacek Kalinski" <jacek_kal@go2._NOSPAMPLEASE_.pl> napisał w 
wiadomości news:slrniekrrg.llq.jacek_kal@nntp.dyski.one.pl...
> Od razu zaznaczam, że perla znam w szczątkowej formie (preferuję inne
> języki programowania). Mam plik XML o wielkości 400MB ($file).
> To już pewnie rozumiecie dlaczego perl ;)
>
> Dlaczego:
> my $parser = XML::Parser->new( ErrorContext => 2, Style => "Tree" );
> $parser->parsefile( $file );
>
> wykonanie tylko tych 2 wierszy trwa ponad 3 minuty?

Dlatego, że nie czytasz pliku, tylko go parsujesz tzn rozpoznajesz elementy 
w pliku i budujesz w pamięci odpowiednią strukturę.    Byc może wiedząc coś 
więcej o pliku XML dałoby się cos wymyślić.

Może wystarczy XML::Simple z parserem SAX? - nie testowałem, ale warto 
spróbować:
http://search.cpan.org/~grantm/XML-Simple-2.18/lib/XML/Simple.pm#SAX_SUPPORT
dodatkowo jeśli odwołujesz się wielokrotnie do tego pliku możesz włączyć 
cache=>storable

MaW 
Technical Details
Message-ID: <ice8v0$oed$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
References: <slrniekrrg.llq.jacek_kal@nntp.dyski.one.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
From: "MaW" <niepisztu@aaa.bbb>
Newsgroups: pl.comp.lang.perl
Subject: Re: alternatywa dla XML::Parser ?
Date: Mon, 22 Nov 2010 18:23:56 +0100
Organization: http://onet.pl
Lines: 25
Message-ID: <ice8v0$oed$1@news.onet.pl>
References: <slrniekrrg.llq.jacek_kal@nntp.dyski.one.pl>
NNTP-Posting-Host: nat4-16.ghnet.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1290446624 25037 91.150.221.16 (22 Nov 2010 17:23:44 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Mon, 22 Nov 2010 17:23:44 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5994
X-EsetScannerBuild: 8219
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit