Skip to content
  • Pierre-Yves David's avatar
    phases: large rework of advance boundary · 23950e39281f
    Pierre-Yves David authored
    In a similar spirit as the rework of retractboundary, the new algorithm is doing
    an amount of work in the order of magnitude of the amount of changeset that
    changes phases. (except to find new roots in impacted higher phases if any may
    exists).
    
    This result in a very significant speedup for repository with many old draft
    like mozilla try.
    
    runtime of perf:unbundle for a bundle constaining a single changeset (C code):
    
    before 6.7 phase work: 14.497 seconds
    before this change:     6.311 seconds (-55%)
    with this change:       2.240 seconds (-85%)
    
    Combined with the other patches that fixes the phases computation in the Rust
    index, the rust code with a persistent nodemap get back to quite interresting
    performances with 2.026 seconds for the same operation, about 10% faster than
    the C code.
    23950e39281f