Re: [Rd] Creating XML document extremely slow

From: Milan Bouchet-Valat <nalimilan_at_club.fr>
Date: Fri, 10 Feb 2012 14:10:19 +0100

Le vendredi 10 février 2012 à 13:18 +0100, Titus von der Malsburg a écrit :
> Hi list,
>
> I'm using the package XML to create a simple XML document.
> Unfortunately constructing the XML tree is extremely slow. My code
> (see below) adds only about 100 nodes per second on an Intel i5
> machine. There's clearly something wrong but I don't see what.
>
> Here's a sample of the XML document:
>
> <?xml version="1.0" encoding="utf-8"?>
> <MarkerSet xmlns="http://www.brainproducts.com/MarkerSet">
> <SamplingRate>512.032770097286</SamplingRate>
> <SamplingInterval>1.953</SamplingInterval>
> <Markers>
> <Marker>
> <Type>Stimulus</Type>
> <Description>prr_156</Description>
> <Position>397497</Position>
> <Points>1</Points>
> <Channel>All</Channel>
> </Marker>
> ...
> </Markers>
> </MarkerSet>
>
> There are about 500 very similar marker tags. Here's the part of the
> code that is particularly slow (x is a character, y is an integer,
> both have a length of about 500):
>
> markernode <- xmlNode('Markers')
> for(i in 1:length(t)){
> markernode <- addChildren(markernode, xmlNode('Marker',
> xmlNode('Type', 'Stimulus'), xmlNode('Description', x[i]),
> xmlNode('Position', y[i]), xmlNode('Points', 1),
> xmlNode('Channel', 'All')))
> }
>
> Looks pretty harmless to me. Any suggestion about how I can speed
> this up are most welcome!
Just a guess, but I'd try creating all 'Marker' nodes first, storing them in a 'markers' list, and then calling addChildren(markernode, kids=markers). Adding nodes one by one is likely to create useless overhead.

Hope this helps



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri 10 Feb 2012 - 13:13:24 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 10 Feb 2012 - 18:00:15 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive