[Bug 4782] New: 62371c539c89 regressed revset performance by 7x

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Tue Aug 18 18:49:17 UTC 2015


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

          Priority: normal
            Bug ID: 4782
          Keywords: regression
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: 62371c539c89 regressed revset performance by 7x
          Severity: bug
    Classification: Unclassified
                OS: All
          Reporter: gregory.szorc at gmail.com
          Hardware: All
            Status: UNCONFIRMED
           Version: default branch
         Component: Mercurial
           Product: Mercurial

The following changeset regressed performance of `hg wip` on my Firefox
repository by 7x, going from ~6.6 to ~51s:

changeset:   35715:62371c539c89
user:        Laurent Charignon <lcharignon at fb.com>
date:        Fri Jun 19 20:28:52 2015 -0700
summary:     revset: remove grandparent by using reachableroots

Actual revset used is:

  (parents(not public()) or not public() or . or (head() and branch(default)))
and (not obsolete() or unstable()^) and not closed()

Here is profile results of a partial run:

   CallCount    Recursive     Total(s)    Inline(s) module:lineno(function)
    17121951     17116186     20.9847      9.8474  
mercurial.revset:3080(_iterfilter)
    16751603     16744244     20.5347      3.0723  
mercurial.revset:3146(_iterordered)
    17088101          103      4.3506      3.0350  
mercurial.revset:2947(<lambda>)
    34153513            0      2.4568      2.4568   <method '__contains__' of
'set' objects>
    17072879            0      2.3720      2.3720  
mercurial.revset:3590(_iterfilter)
      337454       337449      0.3873      0.0572  
mercurial.revset:3283(arbitraryordergen)
      420806            0      0.0542      0.0542   <max>
          13            0      0.0364      0.0364   <method 'reachableroots' of
'parsers.index' objects>
        6625            0      0.1223      0.0340  
mercurial.ancestor:332(__contains__)
       23813            0      0.0334      0.0334   <_heapq.heappop>
        7830            0      0.0590      0.0285  
mercurial.obsolete:148(_fm0readmarkers)
       23997            0      0.0282      0.0282   <_heapq.heappush>
        7293            0      0.0212      0.0212   <method 'get' of
'parsers.index' objects>

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


More information about the Mercurial-devel mailing list