Skip to content
  • Arseniy Alekseyev's avatar
    rhg: stop manifest traversal when no more files are needed · 0cc69017d47f
    Arseniy Alekseyev authored
    Stopping the traversal early can skip a significant part
    of the manifest traversal, to avoid some of its cost.
    
    The worst-case benchmarks are favorable, as well.
    Running [hg cat] on the last file in the manifest of
    a large repo, I'm seeing a ~4ms improvement (150ms -> 146ms),
    so this time is now almost indistinguishable from the
    baseline ("brute force") implementation.
    
    Running [hg cat] on ~220 files together with the last file
    of the repo is further improved by ~5ms or so.
    
    I suspect the raw performance improvements are caused by splitting
    the manifest search and the file data access into separate phases,
    instead of interleaving them.
    
    Differential Revision: https://phab.mercurial-scm.org/D11616
    0cc69017d47f