Hi Everyone,
I have lately been investigating into improving the performance of
app-schema. One area of concern is the building of features to count it and
rebuilding it again to encode it (therefore building it twice) which
obviously have performance overhead.
I have been testing out possible options and I am at a lost in how this can
be achieved. I was hoping someone in the community have some solutions.
These is some of the ideas I have tried and why I think it is not feasible.
Please do correct me if i am wrong
- Serializing the featurecollection when its counting therefore no need to
rebuild on encoding.
* The feature is a complex beast for serialization as it is deeply nested.
To serialize it, every object instance it reference must be serializable as
well. I tried JBoss Serialization which claimed that the objects are not
required to implement Serializable but that didn't seem like the case when i
was testing it.
- ignore the count and build the feature(while counting at the same time)
then updated the numberOfFeature after it has finish building.
* From walking through the code, the numberOfFeature is set in Encoder.start
line 1107: serializer.startElement(uri, local, qName, atts); The features
are stream and not cached due to possible memory overflow therefore is it
still possible to change the value after it has been streamed? If yes can
someone guide me where it can be achieved?
- Xstream
* Tried XStream as a mean to serialize objects into xml but Xsteam died on
while attempting the task. It has performanace overhead as well and not the
best solution.
- last resort
* instead of streaming the result out, perhaps I can stream the results to
disk, updated the numberOfFeatures then return it? but this will have impact
on the outputstrategy.
Please advice thanks
--
View this message in context: http://old.nabble.com/App-Schema-performance-tp30283782p30283782.html
Sent from the GeoServer - Dev mailing list archive at Nabble.com.