How to improve the performance of parsers in Perl?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to improve the performance of parsers in Perl?
# 1  
Old 04-21-2011
How to improve the performance of parsers in Perl?

Hi,

I have around one lakh records. I have used XML for the creation of the data.

I have used these 2 Perl modules.

Code:
use XML::DOM; 
use XML::LibXML;

The data will loo like this and most it is textual entries.

Code:
<eid>19000</eid>
<einfo>This is the ..........</einfo>
......
.................
.............................

But i am facing performance issues while creating XML chunk.

For Example: 9000 entries it is around 2 min.

Is there any option available to reduce the time taken and improve the performance of these modules and XML generation?

Is there any caching mechanism available for these modules?

How can i improve the performance and reduce the time taken and provide results in quicker way?

Any suggestions?

Regards
Archana


FYI: A lakh or lac (English pronunciation: /ˈlæk/ lak or /ˈlɑːk/ lahk) is a unit in the Indian numbering system equal to one hundred thousand (100,000).

Last edited by fpmurphy; 04-21-2011 at 09:55 AM.. Reason: Add definition of lakh
# 2  
Old 04-21-2011
Unless you need the complete document DOM in memory, a SAX (Sequential Access XML) parser will nearly always be faster. Whereas the DOM operates on the document as a whole, SAX parsers operate on each piece of the XML document sequentially. Even better would be StAX (Streaming API for XML) which is a newer API for pull-parsing of XML

Perl has several SAX modules but I do not see any StAX modules.
# 3  
Old 04-26-2011
Quote:
Originally Posted by fpmurphy
Unless you need the complete document DOM in memory, a SAX (Sequential Access XML) parser will nearly always be faster. Whereas the DOM operates on the document as a whole, SAX parsers operate on each piece of the XML document sequentially. Even better would be StAX (Streaming API for XML) which is a newer API for pull-parsing of XML

Perl has several SAX modules but I do not see any StAX modules.
Hi,

I tried looking but our constraint is that we need to use DOM parsers only.

So is there caching mechanism available for these parsers?

Is there any method to speed up the Dom parsers in Perl?

Help is very much required.

Regards
Vanitha
# 4  
Old 04-27-2011
There is really no way to speed up a DOM parser except with a faster machine and more memory. As your file gets bigger and bigger, the DOM representation of your document will require more and more memory. That is why they came up with SAX and StAX.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Improve the performance of my C++ code

Hello, Attached is my very simple C++ code to remove any substrings (DNA sequence) of each other, i.e. any redundant sequence is removed to get unique sequences. Similar to sort | uniq command except there is reverse-complementary for DNA sequence. The program runs well with small dataset, but... (11 Replies)
Discussion started by: yifangt
11 Replies

2. UNIX for Dummies Questions & Answers

How to improve the performance of this script?

Hi , i wrote a script to convert dates to the formate i want .it works fine but the conversion is tkaing lot of time . Can some one help me tweek this script #!/bin/bash file=$1 ofile=$2 cp $file $ofile mydates=$(grep -Po '+/+/+' $ofile) # gets 8/1/13 mydates=$(echo "$mydates" | sort |... (5 Replies)
Discussion started by: vikatakavi
5 Replies

3. Programming

Perl and XML Parsers

Hi, Am pretty new for perl scripting and confused how to use XML Parser.. I just want to know how to use perl and XML parser.. The scenario is when i execute a command, it will generate a XML file.. From that XML file generated i need to grep for specific term that has HTML TAG say... (2 Replies)
Discussion started by: Priya Amaresh
2 Replies

4. Programming

Help with improve the performance of grep

Input file: #content_1 12314345345 242467 #content_14 436677645 576577657 #content_100 3425546 56 #content_12 243254546 1232454 . . Reference file: content_100 (1 Reply)
Discussion started by: cpp_beginner
1 Replies

5. Shell Programming and Scripting

Want to improve the performance of script

Hi All, I have written a script as follows which is taking lot of time in executing/searching only 3500 records taken as input from one file in log file of 12 GB Approximately. Working of script is read the csv file as an input having 2 arguments which are transaction_id,mobile_number and search... (6 Replies)
Discussion started by: poweroflinux
6 Replies

6. Shell Programming and Scripting

Improve the performance of a shell script

Hi Friends, I wrote the below shell script to generate a report on alert messages recieved on a day. But i for processing around 4500 lines (alerts) the script is taking aorund 30 minutes to process. Please help me to make it faster and improve the performace of the script. i would be very... (10 Replies)
Discussion started by: apsprabhu
10 Replies

7. Shell Programming and Scripting

Any way to improve performance of this script

I have a data file of 2 gig I need to do all these, but its taking hours, any where i can improve performance, thanks a lot #!/usr/bin/ksh echo TIMESTAMP="$(date +'_%y-%m-%d.%H-%M-%S')" function showHelp { cat << EOF >&2 syntax extreme.sh FILENAME Specify filename to parse EOF... (3 Replies)
Discussion started by: sirababu
3 Replies

8. UNIX for Dummies Questions & Answers

Improve Performance

hi someone tell me which ways i can improve disk I/O and system process performance.kindly refer some commands so i can do it on my test machine.thanks, Mazhar (2 Replies)
Discussion started by: mazhar99
2 Replies

9. Shell Programming and Scripting

How to improve grep performance...

Hi All, I am using grep command to find string "abc" in one file . content of file is *********** abc = xyz def= lmn ************ i have given the below mentioned command to redirect the output to tmp file grep abc file | sort -u | awk '{print #3}' > out_file Then i am searching... (2 Replies)
Discussion started by: pooga17
2 Replies

10. UNIX for Advanced & Expert Users

improve performance by using ls better than find

Hi , i'm searching for files over many Aix servers with rsh command using this request : find /dir1 -name '*.' -exec ls {} \; and then count them with "wc" but i would improve this search because it's too long and replace directly find with ls command but "ls *. " doesn't work. and... (3 Replies)
Discussion started by: Nicol
3 Replies
Login or Register to Ask a Question