Current state of revset performance.

Martin von Zweigbergk martinvonz at google.com
Fri Oct 31 13:37:09 CDT 2014


Speaking of revset performance, I just found another case of a matcher that
gets re-created for each revision. This time it was in the status functions
('modifies(filename)' etc). I'll send a patch shortly, although it's
probably not a very commonly used feature.

On Fri Oct 31 2014 at 11:26:26 AM Pierre-Yves David <
pierre-yves.david at ens-lyon.org> wrote:

> Crude version of the Mozilla run:
>
> Revision:
> 0) 2.9.2
> 1) 3.0.2
> 2) 3.1.2
> 3) @ (6df4bc39f682)
>
>
> revset #0: all()
>       plain           first           last
> 0)   0.006786        0.010800        0.010913
> 1)   0.007517   110% 0.000067     0% 0.000068     0%
> 2)   0.007632   112% 0.000072     0% 0.000073     0%
> 3)   0.002017    29% 0.000057     0% 0.000058     0%
>
> revset #1: draft()
>       plain           first           last
> 0)   0.079163        0.089195        0.088850
> 1)   0.096753   122% 0.095942   107% 0.094619   106%
> 2)   0.096062   121% 0.095756   107% 0.095443   107%
> 3)   0.073472    92% 0.073260    82% 0.072349    81%
>
> revset #2: ::tip
>       plain           first           last
> 0)   0.280741        0.280493        0.283894
> 1)   0.769780   274% 0.690721   246% 0.000121     0%
> 2)   0.803637   286% 0.696153   248% 0.000127     0%
> 3)   0.654392   233% 0.667881   238% 0.000116     0%
>
> revset #3: draft() and ::tip
>       plain           first           last
> 0)   0.324141        0.337861        0.330265
> 1)   0.096552    29% 0.096565    28% 0.095286    28%
> 2)   0.094455    29% 0.096499    28% 0.094012    28%
> 3)   0.073355    22% 0.073941    21% 0.073433    22%
>
> revset #4: ::tip and draft()
>       plain           first           last
> 0)   0.324507        0.327941        0.334155
> 1)   0.095595    29% 0.094801    28% 0.096211    28%
> 2)   0.094424    29% 0.095275    29% 0.095420    28%
> 3)   0.072749    22% 0.073419    22% 0.073032    21%
>
> revset #5: 0::tip
>       plain           first           last
> 0)   0.324600        0.332428        0.333884
> 1)   0.352632   108% 0.285484    85% 0.284378    85%
> 2)   0.352756   108% 0.282926    85% 0.287365    86%
> 3)   0.325903        0.276009    83% 0.274474    82%
>
> revset #6: roots(0::tip)
>       plain           first           last
> 0)   0.519029        0.538584        0.532543
> 1)   0.668438   128% 0.673205   124% 0.663861   124%
> 2)   0.660498   127% 0.656784   121% 0.658735   123%
> 3)   0.985584   189% 0.956580   177% 0.983027   184%
>
> revset #7: author(lmoscovicz)
>       plain           first           last
> 0)   11.643608        11.662681        11.633260
> 1)   11.236965        11.289932        12.378441   106%
> 2)   11.247612        11.487701        12.342784   106%
> 3)   11.184739        11.139515        12.291413   105%
>
> revset #8: author(mpm)
>       plain           first           last
> 0)   11.577756        11.654137        12.009246
> 1)   11.322512        11.308106        12.231911
> 2)   11.320787        11.425371        12.321440
> 3)   11.323165        11.222706        12.221679
>
> revset #9: author(lmoscovicz) or author(mpm)
>       plain           first           last
> 0)   23.756454        23.636443        23.543629
> 1)   29.609735   124% 29.487522   124% 29.257593   124%
> 2)   29.716844   125% 29.107857   123% 29.490393   125%
> 3)   22.976465        23.137062        23.158090
>
> revset #10: author(mpm) or author(lmoscovicz)
>       plain           first           last
> 0)   23.569961        23.351835        23.249818
> 1)   29.352488   124% 29.463170   126% 29.538436   127%
> 2)   29.460387   124% 29.618885   126% 29.451402   126%
> 3)   22.800767        22.952411        22.951751
>
> revset #11: tip:0
>       plain           first           last
> 0)   0.030447        0.036552        0.036424
> 1)   0.085987   282% 0.002484     6% 0.002369     6%
> 2)   0.085359   280% 0.002372     6% 0.002478     6%
> 3)   0.052133   171% 0.002337     6% 0.002362     6%
>
> revset #12: 0::
>       plain           first           last
> 0)   0.256131        0.264171        0.263897
> 1)   0.578819   225% 0.000134     0% 0.539618   204%
> 2)   0.571131   222% 0.000138     0% 0.534933   202%
> 3)   0.289868   113% 0.000125     0% 0.375199   142%
>
> revset #13: roots((tip~100::) - (tip~100::tip))
>       plain           first           last
> 0)   0.034687        0.043165        0.042474
> 1)   0.092367   266% 0.092202   213% 0.091826   216%
> 2)   0.092195   265% 0.092544   214% 0.091687   215%
> 3)   0.007388    21% 0.007371    17% 0.007353    17%
>
> revset #14: roots((0::) - (0::tip))
>       plain           first           last
> 0)   0.661421        0.649430        0.640142
> 1)   391.611347 59207% 391.789948 60328% 391.887884 61218%
> 2)   1.163275   175% 1.151022   177% 1.154920   180%
> 3)   1.149652   173% 1.160350   178% 1.149502   179%
>
> revset #15: ::p1(p1(tip))::
>       plain           first           last
> 0)   0.578671        0.593520        0.584102
> 1)   1.756008   303% 0.843632   142% 1.701836   291%
> 2)   1.711039   295% 0.876324   147% 1.674451   286%
> 3)   1.100286   190% 0.662526   111% 1.082050   185%
>
> revset #16: public()
>       plain           first           last
> 0)   0.088949        0.092381        0.092394
> 1)   0.111013   124% 0.000072     0% 0.000073     0%
> 2)   0.113799   127% 0.000077     0% 0.000078     0%
> 3)   0.083106    93% 0.000062     0% 0.000063     0%
>
> revset #17: :10000 and public()
>       plain           first           last
> 0)   0.015773        0.025560        0.025615
> 1)   0.011457    72% 0.002400     9% 0.002507     9%
> 2)   0.011586    73% 0.002528     9% 0.002525     9%
> 3)   0.009616    60% 0.002490     9% 0.002386     9%
>
> revset #18: draft()
>       plain           first           last
> 0)   0.077634        0.085566        0.085021
> 1)   0.095753   123% 0.095242   111% 0.095653   112%
> 2)   0.097078   125% 0.095641   111% 0.096282   113%
> 3)   0.073030    94% 0.073441    85% 0.073012    85%
>
> revset #19: :10000 and draft()
>       plain           first           last
> 0)   0.015261        0.025530        0.025518
> 1)   0.011235    73% 0.011130    43% 0.011164    43%
> 2)   0.011181    73% 0.011122    43% 0.011187    43%
> 3)   0.008544    55% 0.008780    34% 0.008678    34%
>
> revset #20: roots((0:tip)::)
>       plain           first           last
> 0)   0.501115        0.519457        0.510027
> 1)   1.331064   265% 1.334445   256% 1.323278   259%
> 2)   1.318210   263% 1.323498   254% 1.327099   260%
> 3)   1.448959   289% 1.432456   275% 1.448156   283%
>
> revset #21: (not public() - obsolete())
>       plain           first           last
> 0)   0.098131        0.108021        0.106831
> 1)   0.290775   296% 0.289776   268% 0.263960   247%
> 2)   0.277792   283% 0.278018   257% 0.250765   234%
> 3)   0.210429   214% 0.211743   196% 0.211170   197%
>
> revset #22: parents(20000)
>       plain           first           last
> 0)   0.011561        0.019285        0.019149
> 1)   0.012286   106% 0.001274     6% 0.011334    59%
> 2)   0.012316   106% 0.001286     6% 0.011265    58%
> 3)   0.000093     0% 0.000116     0% 0.000116     0%
>
> revset #23: (20000::) - (20000)
>       plain           first           last
> 0)   0.230389        0.244946        0.236635
> 1)   0.508662   220% 0.048214    19% 0.471218   199%
> 2)   0.505554   219% 0.048132    19% 0.473105   199%
> 3)   0.450539   195% 0.075974    31% 0.258297   109%
>
> revset #24: (children(ancestor(tip~5, tip)) and ::(tip~5))::
>       plain           first           last
> 0)   0.290993        0.298727        0.296004
> 1)   0.885938   304% 0.895829   299% 0.902676   304%
> 2)   0.922947   317% 0.941054   315% 0.912894   308%
> 3)   0.673059   231% 0.713323   238% 0.731710   247%
>
> --
> Pierre-Yves David
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20141031/12c50aa7/attachment.html>


More information about the Mercurial-devel mailing list