Hi All,
The upcoming DMR 1.4.0 version will introduce DMR Streaming API [1] -
see attachment.
Will be DMR 1.4.z included in WF 11 or also in next EAP 7 release?
The idea of this new feature grew up while I was working on DMR-9
issue [2].
In short the news in upcoming JBoss DMR 1.4.0 are:
* it will be compilable on JDK8 and above
* it will be 100% backward compatible on binary level with previous
version
* it replaces old cookcc based parser with new one based on DMR
Streaming API
* DMR parsing will be times faster with old model based API
* new DMR streaming API is highly memory efficient and really very fast
Nice results in attached spreadsheets.
One example on how to use new DMR streaming API can be seen here
[3].
I believe this new DMR Streaming API will become very handy for many of us
because it opens new opportunities to decrease memory and CPU usage in
our core.
At the moment in current prototype [4] I didn't touch DMR object model
writing yet
because new DMR Streaming API does not (and most probably will not)
support pretty print feature
(because of its focus on speed and efficiency).
But I'm considering I might fix the object model writing flow when
pretty print is off.
Fixing it would speed it up significantly. Any objections?
I think pretty print feature is need, at least in CLI for stuff like
':read-resource(recursive=true)'
Rostislav
As a final note today I run few benchmarks (see attachments).
Here are some outcomes from benchmark results in short:
* Writing small DMR structures in DMR format is 2,4 times faster with
new DMR streaming API
* Writing small DMR structures in JSON format is 2,6 times faster with
new DMR streaming API
* Reading small DMR structures in DMR format is 3,9 times faster with
old DMR object model API
* Reading small DMR structures in JSON format is 3,7 times faster with
old DMR object model API
* Reading small DMR structures in DMR format is 5 times faster with
new DMR streaming API
* Reading small DMR structures in JSON format is 4,4 times faster with
new DMR streaming API
* Reading big DMR structures in DMR format is 5,2 times faster with
old DMR object model API
* Reading big DMR structures in JSON format is 6 times faster with old
DMR object model API
* Reading big DMR structures in DMR format is 7,6 times faster with
new DMR streaming API
* Reading big DMR structures in JSON format is 8,8 times faster with
new DMR streaming API
PS: Hopefully new DMR streaming API will seamlessly integrate with GWT
(used in our console).
[1]
https://github.com/ropalka/jboss-dmr/tree/DMR-9/src/main/java/org/jboss/d...
[2]
https://issues.jboss.org/browse/DMR-9
[3]
https://github.com/ropalka/jboss-dmr/blob/DMR-9/src/main/java/org/jboss/d...
[4]
https://github.com/ropalka/jboss-dmr/commits/DMR-9
Regards,
--
Richard Opalka
Principal Software Engineer
JBoss by Red Hat
Mobile: +420 731 186 942
_______________________________________________
wildfly-dev mailing list
wildfly-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/wildfly-dev