Skip to content

Speed up large XML parses#12917

Open
singpolyma wants to merge 1 commit into
HaxeFoundation:developmentfrom
singpolyma:faster-xml
Open

Speed up large XML parses#12917
singpolyma wants to merge 1 commit into
HaxeFoundation:developmentfrom
singpolyma:faster-xml

Conversation

@singpolyma
Copy link
Copy Markdown
Contributor

Creating the children array and attribute map for nodes that will never use it (text nodes, etc) is both wasteful in terms of RAM and in terms of time. Parsing a 400MB XML file this small change saves me a full second of time in benchmarks.

Creating the children array and attribute map for nodes that will never
use it (text nodes, etc) is both wasteful in terms of RAM and in terms
of time. Parsing a 400MB XML file this small change saves me a full
second of time in benchmarks.
@back2dos
Copy link
Copy Markdown
Member

Probably one of the few places where inheritance would really make sense: Have one subclass for trees (documents and elements) and one for leafs (the rest). This would replace all the node type conditionals with polymorphism and also make smaller instances on static targets (even if fields are null, they still take 8 bytes each).

@singpolyma
Copy link
Copy Markdown
Contributor Author

Sure, inheritance or enum could make sense. Would have to benchmark to see the impact. This small change has a good performance impact without any API changes though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants