Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor getter caching based on keypath state #223

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Commits on Sep 29, 2016

  1. Refactor getter caching based on keypath state

    The current version of NuclearJS uses a cache key consisting of store
    states (monotomically incresing ID per store).  This has the
    disadvantage of allowing only a single level of depth when figuring out
    if a cache entry is stale.  This leads to poor performance when the
    shape of a Reactor's state is more deep than wide, ie a store having
    multiple responsibilities for state tracking.
    
    The implementation is as follows:
    
    - Consumer can set the maxCacheDepth when instantiating a reactor
    - Getters are broken down into the canonical set of keypaths based on
    the maxCacheDepth
    - Add a keypath tracker abstraction to maintain the state value of all
    tracked keypaths
    - After any state change (`Reactor.__notify`) dirty keypaths are
    resolved and then based on which keypaths have changed any dependent
    observers are called
    jordangarcia committed Sep 29, 2016
    Configuration menu
    Copy the full SHA
    e6338d9 View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2016

  1. Improve cleaning phase of keypath tracker cache

    Instead of doing a full recursive traversal of the keypathStates tree,
    keep track of all changed paths as use that as an indicator of the paths
    the need to be cleaned
    jordangarcia committed Sep 30, 2016
    Configuration menu
    Copy the full SHA
    284b003 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1184c03 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2016

  1. Configuration menu
    Copy the full SHA
    e90a721 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2016

  1. Configuration menu
    Copy the full SHA
    2d6865f View commit details
    Browse the repository at this point in the history
  2. Fix reset

    jordangarcia committed Oct 2, 2016
    Configuration menu
    Copy the full SHA
    cc2ccb7 View commit details
    Browse the repository at this point in the history