Slow pull that exchanges no changes

Xavier Zwirtz me at xavierzwirtz.com
Wed Jul 27 17:43:04 UTC 2016


I am experiencing very slow pulls on a repo with evolve enabled. Both repos 
are on my local disk. If I run a pull using a file system path the command 
finishes in 1.083 seconds. However if I run `hg serve` and pull from that 
instead the total time is 16.991 seconds. The repository is quite large,
it contains 50,000 commits.

Both the client and server repo are using generaldelta.

The output when pulling with --debug and --profile is below:

$ hg pull http://localhost:8000/ --debug --profile
pulling from http://localhost:8000/
using http://localhost:8000/
sending capabilities command
query 1; heads
sending batch command
searching for changes
all remote heads known locally
no changes found
sampling from both directions
query 1; still undecided: 50212, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 2; still undecided: 4517, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 3; still undecided: 3257, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 4; still undecided: 2579, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 5; still undecided: 1969, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 6; still undecided: 1447, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 7; still undecided: 1070, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 8; still undecided: 741, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 9; still undecided: 445, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 10; still undecided: 208, sample size is: 200
sending evoext_obshash1 command
sampling from both directions
query 11; still undecided: 6, sample size is: 6
sending evoext_obshash1 command
11 total queries
sending getbundle command
bundle2-input-bundle: with-transaction
bundle2-input-part: "listkeys" (params: 1 mandatory) supported
bundle2-input-part: total payload size 101
bundle2-input-part: "listkeys" (params: 1 mandatory) supported
bundle2-input-bundle: 1 parts total
checking for updated bookmarks
   CallCount    Recursive     Total(s)    Inline(s) module:lineno(function)
        2493            0     12.5904     12.5904   <method 'recv' of '_socket.socket' objects>
           2            0      0.9998      0.9998   <method 'connect' of '_socket.socket' objects>
           1            0      1.9625      0.3061   <hgext\evolve.pyo>:3854(_obsrelsethashtree)
      265620            2      0.3494      0.2292   <mercurial\localrepo.pyo>:69(__get__)
          20            0      0.5249      0.2125   <mercurial\setdiscovery.pyo>:58(_updatesample)
      114771            0      0.4348      0.1584   <mercurial\context.pyo>:402(__init__)
       65467            0      0.1326      0.1326   <_heapq.heappop>
       50221            0      0.1553      0.1309   <mercurial\obsolete.pyo>:680(relevantmarkers)
      114773            0      0.1458      0.1101   <mercurial\context.pyo>:56(__new__)
       50221            0      0.5276      0.1061   <mercurial\context.pyo>:537(_parents)
          21            0      0.1137      0.0990   <mercurial\dagutil.pyo>:203(headsetofconnecteds)
       50297            0      0.1820      0.0938   <mercurial\ui.pyo>:263(config)
       65467            0      0.0874      0.0874   <_heapq.heappush>
       50213            0      0.3617      0.0848   <mercurial\revset.pyo>:38(iterate)
      265622            2      0.0868      0.0792   <mercurial\scmutil.pyo>:1185(__get__)
      116658            0      0.1054      0.0778   <mercurial\changelog.pyo>:333(node)
          11            0      0.0824      0.0718   <mercurial\dagutil.pyo>:183(ancestorset)
       50225            0      0.3475      0.0696   <mercurial\localrepo.pyo>:525(__getitem__)
           1            0      0.0801      0.0689   <mercurial\dagutil.pyo>:257(_walkto)
      445510            0      0.0672      0.0672   <isinstance>
      100433            0      0.0995      0.0637   <mercurial\changelog.pyo>:345(parentrevs)
      100602            0      0.0696      0.0521   <mercurial\config.pyo>:50(get)
      132890            0      0.1429      0.0457   <mercurial\dagutil.pyo>:278(parents)
      156085       100539      0.5570      0.0456   <len>
      435352            0      0.0452      0.0452   <method 'get' of 'dict' objects>
       50254            5      0.5814      0.0372   <mercurial\util.pyo>:736(__get__)
      100433            0      0.0358      0.0358   <mercurial\revlog.pyo>:384(parentrevs)
      349495            0      0.0353      0.0353   <method 'setdefault' of 'dict' objects>
          10            0      0.1490      0.0338   <mercurial\dagutil.pyo>:105(headsetofconnecteds)
       50236            0      0.2396      0.0308   <mercurial\ui.pyo>:1081(progress)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/evolve-testers/attachments/20160727/cef691fb/attachment.html>


More information about the Evolve-testers mailing list