Skip to content
This repository has been archived by the owner on Jul 1, 2021. It is now read-only.

Investigate alternative higher-performance XML processors #57

Open
hartsock opened this issue Sep 25, 2014 · 0 comments
Open

Investigate alternative higher-performance XML processors #57

hartsock opened this issue Sep 25, 2014 · 0 comments

Comments

@hartsock
Copy link
Contributor

This is a low priority wishlist item from an IRC conversation in #rbvmomi-dev on freenode.

Based on pain points in nokogiri, around memory use, performance, and installation problems it's been suggested that we consider a different XML library. XML parser performance problems are not trivial and are not necessarily easily solved by simply swapping out a library. Some problems are endemic to a library's internal design and others are caused by poor a understanding of what performance characteristics we need to design our utility code for.

Background Research:

Possible candidates:

Possible courses of action:

  • Continue with Nokogiri but alter code so it is more efficient
  • Implement an alternative XML parser in a branch and bench mark it against the master
  • Alter the codebase to allow people to supply their own XML parsing module based on their performance needs
  • Do NOTHING. Because, really... is it worth the effort?

TODO:

  • Before doing anything: create unit tests to automatically and deterministically cover all XML document use-cases this establishes rbVmomi's current expected behavior. Do nothing before doing this as this base-test work allows us to evaluate fairly alternative implementations.
  • create performance metrics to evaluate XML processing speed fairly
  • develop multiple candidates for consideration in their own branches

NOTE:

  • This is a large change and should not be attempted lightly (it may be best to not even attempt the effort but we can at least document things here)
  • This library feeds a large ecosystem and many quirks may have become embedded as expectations and features
  • If someone really feels strongly that they need to do this then we can discuss it and coordinate efforts with other core developers.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant