Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thlorenz/exmala
Comparing different approaches to parse large XML messages.
https://github.com/thlorenz/exmala
Last synced: 15 days 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 (almost 10 years ago)
- Default Branch: gh-pages
- Last Pushed: 2018-08-29T20:21:33.000Z (about 6 years ago)
- Last Synced: 2024-10-18T05:28:53.877Z (19 days ago)
- Language: JavaScript
- Homepage: http://thlorenz.github.io/exmala/client/
- Size: 13.5 MB
- Stars: 10
- Watchers: 3
- 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.
[![img](assets/buffering-streaming-htmlparser.gif)](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