Quantcast
Channel: Apache Timeline
Viewing all articles
Browse latest Browse all 5648

GC limit using ResultSet.outputAsXML - way to optimize my code?

$
0
0
Hello everyone,

I'm facing a "java.lang.OutOfMemoryError: GC overhead limit exceeded" error
and I would like an advice about how I could optimize my code.

The aim of this method is to run a SPARQL query, convert it on a XML format
and then apply a XSL stylesheet[1] to write a JSON format (readable by
Exhibit - Scripted [2]).

My piece of code was working well untill today. (I have been trying to
query a big model and the query returns too much results).
This makes my program break.

<quote>
Query queryToExec = QueryFactory.create(query, Syntax.syntaxARQ);
QueryExecution qexec = QueryExecutionFactory.create(queryToExec, ontoIn);
ResultSet result = null;
BufferedOutputStream buf;
try{
result = qexec.execSelect();
buf = new BufferedOutputStream(new FileOutputStream(new File(root +
"XML/JSON_XML/"+qNameClass+".xml")));
//Serialization of the resultSet
ResultSetFormatter.outputAsXML(buf, result);
buf.close();

catch (Exception e) {
e.printStackTrace();

finally{
qexec.close();

</quote>

I know that writing XML file use loads memory....

I was thinking of:
- creating several XML files by tracing the ResullSetFormatter memory
usage. (is there possible?)
- avoiding XML intermediate format and write directly in one or several
JSON file...
- ...

increasing Xms Xmx) ??

Thanks in advance,

Brice

[1] http://data-gov.tw.rpi.edu/wiki/Sparqlxml2exhibitjson.xsl
[2] http://www.simile-widgets.org/exhibit3/

Viewing all articles
Browse latest Browse all 5648

Trending Articles