https://github.com/thlorenz/exmala
Comparing different approaches to parse large XML messages.
https://github.com/thlorenz/exmala
Last synced: 2 months ago
JSON representation
Comparing different approaches to parse large XML messages.
- Host: GitHub
- URL: https://github.com/thlorenz/exmala
- Owner: thlorenz
- License: mit
- Created: 2014-11-19T18:58:20.000Z (over 10 years ago)
- Default Branch: gh-pages
- Last Pushed: 2018-08-29T20:21:33.000Z (almost 7 years ago)
- Last Synced: 2025-04-30T05:04:01.425Z (2 months ago)
- Language: JavaScript
- Homepage: http://thlorenz.github.io/exmala/client/
- Size: 13.5 MB
- Stars: 10
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# exmala
Comparing different approaches to parse large XML messages.
[](http://thlorenz.github.io/exmala/client/)
## Streaming
When not buffering and writing to multiple parsers at once we risk running out of memory since all these parsers keep
a stack and other stateful things around that cost us memory.Depending on the parser lib we use that happens at a specific level of concurrency.
#### htmlparser2
```
settings:
{ parser: 'htmlparser',
streaming: true,
concurrency: 1000,
number: 2000,
gc: false,
file: '/Users/thlorenz/dev/js/exmala/data/ibm-request.soap.xml',
resultsFile: '/Users/thlorenz/dev/js/exmala/results/streaming-htmlparser-c1000-n2000_ibm-request.soap.xml.json' } }
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
```#### xml2js
```
{ settings:
{ parser: 'xml2js',
streaming: true,
concurrency: 500,
number: 2000,
gc: false,
file: '/Users/thlorenz/dev/js/exmala/data/ibm-request.soap.xml',
resultsFile: '/Users/thlorenz/dev/js/exmala/results/streaming-xml2js-c500-n2000_ibm-request.soap.xml.json' } }
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
```## License
MIT