Skip to content

Performance ( initial load and during editing )

kyle edited this page Feb 14, 2018 · 2 revisions

Performance

Problem: Some things are slow Solution: Make them faster!

Laziness

The ideal solution involves doing the minimal amount of work ( validation,resolving,etc) to render the UI. This includes the validation errors, in the gutter of the editor, etc.

We won't be rewriting the entire codebase, so we need to move one feature ( or sub-set of features ) at a time to acheieve a goal of steadily improving the performance and aligning our selves to a somewhat ideal pipeline.

Ideas

  • Load the YAML into an AST ( stored immutably ), then rework the features to be recursive in design. Then memoize everything.
  • Explore rxjs, in case a stream/event based system offers a cleaner/faster way.

Log

Initial efforts (2/13/18)

Lazily resolve the $refs, instead of fully resolving the definition into an immtable map. We can pull in resolved pieces of the defintion from the validators, render ( and other resolvers ).

  • Currently have ( pending release ) UI and resolve using a calling a function ( instead of recieve all the data ) for the piceces of the definition it needs.
  • Currently working on the semantic validators. Which still require all $refs to be fully resolved...