[Bug 4680] New: regression in hg graft performance since 3.3

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Wed May 20 06:40:59 CDT 2015


http://bz.selenic.com/show_bug.cgi?id=4680

          Priority: normal
            Bug ID: 4680
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: regression in hg graft performance since 3.3
          Severity: bug
    Classification: Unclassified
                OS: Windows
          Reporter: schnurrz at hotmail.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 3.4
         Component: Mercurial
           Product: Mercurial

Since version 3.3 grafting a single changesets takes between 10 to 30 seconds.
(Prior to 3.3 it took about 1-2 seconds). As far as I know everyone in our
company running the newest version is affected. Our repository consists of 2
branches with about 50000 changesets.
Update to 3.4 (with Bug 4537 fixed) didn't fix our problem.

profile and traceback:

>hg graft --profile --traceback  --currentdate --currentuser --repository "D:\Java\FEP_stable" 51109
grafting 51109:10c34dacf052 "SLA: Produktliste"
   CallCount    Recursive     Total(s)    Inline(s) module:lineno(function)
      531419            0      7.5693      7.5693   <zlib.decompress>
      269550            0     19.5174      1.7578  
<mercurial\changelog.pyo>:306(read)
      269550            0     11.8952      1.5489      
<mercurial\revlog.pyo>:1035(revision)
      269543            0      1.3790      0.7095      
<mercurial\changelog.pyo>:28(decodeextra)
      539098            0      3.7045      0.6319      
<mercurial\encoding.pyo>:83(tolocal)
      539098            0      0.3750      0.3750       <method 'split' of
'str' objects>
      269549            0      0.2024      0.2024       <binascii.unhexlify>
      270029            0     17.0982      1.5875  
<mercurial\revlog.pyo>:1035(revision)
      270026            0     11.3346      1.1786      
<mercurial\revlog.pyo>:976(_chunks)
      270026            0      0.4392      0.4392      
<mercurial.mpatch.patches>
      270026            0      2.9810      0.2717      
<mercurial\revlog.pyo>:1109(_checkhash)
      269550            0      0.2844      0.2117      
<mercurial\changelog.pyo>:208(node)
      269549            0      0.3417      0.2020      
<mercurial\changelog.pyo>:226(flags)
      270026            0     11.3346      1.1786  
<mercurial\revlog.pyo>:976(_chunks)
      534866            0      0.3965      0.3965      
<mercurial\revlog.pyo>:349(start)
      534866            0      7.9248      0.3625      
<mercurial\revlog.pyo>:81(decompress)
      271861            0      1.6545      0.3206      
<mercurial\revlog.pyo>:964(_chunkraw)
      534866            0      0.1131      0.1131      
<mercurial\revlog.pyo>:353(length)
      534866            0      0.0671      0.0671       <method 'append' of
'list' objects>
     1610765            0      2.4189      1.1771   <method 'decode' of 'str'
objects>
      539245            0      0.6787      0.2305      
<encodings\utf_8.pyo>:15(decode)
      539391            0      0.5628      0.1960      
<encodings\cp1252.pyo>:14(decode)
           2            0      0.0002      0.0000      
<encodings\__init__.pyo>:71(search_function)
      540120            0      1.0638      1.0638   <method 'update' of
'_hashlib.HASH' objects>
     1079402            0      0.7610      0.7610  
<mercurial\revlog.pyo>:349(start)
      269543            0      1.3790      0.7095  
<mercurial\changelog.pyo>:28(decodeextra)
      532112            0      0.3572      0.3570       <method 'decode' of
'str' objects>
      801655            0      0.2434      0.2434       <method 'split' of
'str' objects>
      269543            0      0.0662      0.0662       <method 'copy' of
'dict' objects>
        6723            0      0.0027      0.0027       <method 'replace' of
'str' objects>

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


More information about the Mercurial-devel mailing list