[Bug 5956] New: Calculating ellipsis data is slow

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Thu Aug 9 17:22:15 UTC 2018


https://bz.mercurial-scm.org/show_bug.cgi?id=5956

            Bug ID: 5956
           Summary: Calculating ellipsis data is slow
           Product: Mercurial
           Version: default branch
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: 7895pulkit at gmail.com
                CC: mercurial-devel at mercurial-scm.org

We are testing ellipsis internally and it turns out be very slow to compute the
ellipsis data. Computing the ellipsis data is 3-4x slower than just cloning the
whole repository.

I got the server profiling for this:

remote: | 100.0%  __main__.py:    <module>                 line 2:              
remote: | 100.0%  dispatch.py:    _callcatch               line 41:  
remote: | 100.0%  scmutil.py:     callcatch                line 363:  
remote: | 100.0%  dispatch.py:    _runcatchfunc            line 161:  
remote: | 100.0%  color.py:       setup                    line 345:  
remote: | 100.0%  wireprotoserver.py: serve_forever        line 4945:  
remote: | 100.0%  wireprotoserver.py: serveuntil           line 797:  
remote: | 100.0%  wireprotoserver.py: _runsshserver        line 804:  
remote: | 97.6%  wireprotov1server.py: dispatch            line 658:  
remote: | 97.6%  wireprotov1server.py: getbundle           line 74:  
remote: | 97.6%  exchange.py:    getbundlechunks           line 446:  
remote: | 97.6%  exchange.py:    _getbundletagsfnodes      line 1913:  
remote: | 97.6%  narrowbundle2.py: getbundlechangegrouppart_narrowline 485:  
remote: | 97.6%  narrowbundle2.py: _computeellipsis        line 315:  
remote:  \ 51.4%  manifest.py:    read                     line 142:  
remote:    | 51.4%  revlog.py:      revision               line 498:  
remote:    | 51.3%  revlog.py:      _chunks                line 2130:  
remote:    | 51.1%  revlog.py:      decompress             line 2044:  
remote:    | 51.1%  util.py:        decompress             line 2420:  
remote:  \ 46.0%  manifest.py:    diff                     line 143:  
remote:    | 41.8%  manifest.py:    matches                line 1033:  
remote:    | 41.8%  manifest.py:    _matches               line 985:  
remote:      \ 34.6%  manifest.py:    _load                line 998:  
remote:        | 34.6%  manifest.py:    _load_for_read     line 856:  
remote:        | 34.6%  manifest.py:    parse              line 1107:  
remote:        | 34.4%  revlog.py:      revision           line 1517:  
remote:        | 34.0%  revlog.py:      _chunks            line 2130:  
remote:        | 33.9%  revlog.py:      decompress         line 2044:  
remote:        | 33.9%  util.py:        decompress         line 2420:  
remote:      \  6.9%  manifest.py:    _matches             line 1008:  
remote:        |  5.8%  manifest.py:    _matches           line 1008:  
remote: ---

The command run was `hg clone server-repo repo --debug --narrow --include
'contrib/f1/f2'`.

I know we have a very big repo, but at the same time, I also think that we can
speed this up and it will be good.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list