Hey;
I'm developing a pipeline that takes as input XML files with a reasonable
complex structure and size, the nested structure might have several layers
and these files can go from 900 MB to 3 GB in size. I can't change that
because it's not on my control how they are formed, I just need to read
them.
Right now I have the pipeline working by mapping a nested group of structs
to the XML file, something like this:
(code already works, this is just to server as an example on how I'm doing)
```
xmlFile, e := os.Open(f)
if e != nil {
return e
}
defer xmlFile.Close()
b, _ := ioutil.ReadAll(xmlFile)
var xmlHead XmlHeadStruct
reader := bytes.NewReader(b)
decoder := xml.NewDecoder(reader)
decoder.CharsetReader = charset.NewReader
if e = decoder.Decode(&xmlHead); e != nil {
return e
}
```
Now, everything works perfectly but with one exception, the memory usage! A
file with approximately 900 MB is consuming 4 GB RAM and one with 3.3 GB
can consume almost 14 GB RAM. Not cool!
Do you guys have any suggestions on how to circumvent this ?
Thanks
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.