[PATCH 2 of 2] rust-cpython: using rustext.dagop.headrevs in revlog
Pulkit Goyal
7895pulkit at gmail.com
Wed Jan 16 13:40:32 EST 2019
On Wed, Jan 16, 2019 at 11:55 PM Georges Racinet <
georges.racinet at octobus.net> wrote:
>
> On 1/16/19 7:15 PM, Georges Racinet wrote:
> > # HG changeset patch
> > # User Georges Racinet <georges.racinet at octobus.net>
> > # Date 1547651966 -3600
> > # Wed Jan 16 16:19:26 2019 +0100
> > # Node ID 234c106610004aff294268ccda82238164f91f64
> > # Parent f32e7d90db76879096f216f23ebbe75772b0201e
> > # EXP-Topic revset.predicates
> > rust-cpython: using rustext.dagop.headrevs in revlog
>
> Note: this one depends on a previous series by Boris Feld, mamely on the
> following changeset
>
> # HG changeset patch
> # User Boris Feld <boris.feld at octobus.net>
> # Date 1547482251 -3600
> # Mon Jan 14 17:10:51 2019 +0100
> # Node ID 39a2761dc425aaa14c00b69bce5a4c68a780ff50
> # Parent c9906eb8d45f2e80157ca441c1ad01987d8e198a
>
> The measurements are taken with its later
> 8b13377cb4cb8789429693653091772029d54b15 (dagop: minor python
> optimization to `headrevs`) as baseline.
>
> Regards,
>
>
>
> >
> > As with the previous oxidation series, revlog plays the role
> > of the factory, either using its parents function, or passing the
> > index.
> >
> > In most of the cases about heads revsetbenchmarks, this seems to be
> > either neutral or an improvement. There aren't many cases where it's
> > actually slower and they don't look too bad.
> >
> > Result by revset
> > ================
> >
> > Revision:
> > 0) parent of this changeset: rust-cpython: binding for headrevs()
> > 1) this changeset: rust-cpython: using rustext.dagop.headrevs in revlog
> >
> > revset #0: heads(commonancestors(last(head(), 2)))
> > plain min max first last
> reverse rev..rst rev..ast sort sor..rst
> sor..ast
> > 0) 0.002913 0.002845 0.002976 0.002953 0.002978
> 0.002894 0.002946 0.003127 0.002949 0.002977
> 0.003074
> > 1) 0.002830 0.002900 0.002942 0.003066 0.002994
> 0.002881 0.003041 0.002973 0.002942 0.003008
> 0.003012
> >
> > revset #1: heads(commonancestors(head()))
> > plain min max first last
> reverse rev..rst rev..ast sort sor..rst
> sor..ast
> > 0) 0.124867 0.117328 0.117523 0.117500 0.114464
> 0.128686 0.121959 0.119129 0.114949 0.124387
> 0.119485
> > 1) 0.125079 0.124376 106% 0.114437 0.118340 0.124021 108%
> 0.123225 0.126748 0.122144 0.126391 109% 0.116410 93%
> 0.121342
> >
> > revset #2: heads(all())
> > plain min max first last
> reverse rev..rst rev..ast sort sor..rst
> sor..ast
> > 0) 0.080521 0.079977 0.079199 0.079454 0.084119
> 0.079578 0.083369 0.080215 0.080788 0.079157
> 0.080142
> > 1) 0.033069 41% 0.032773 40% 0.033060 41% 0.032708 41% 0.032987 39%
> 0.032458 40% 0.033019 39% 0.032306 40% 0.032341 40% 0.033317 42%
> 0.032645 40%
> >
> > revset #3: heads(-10000:-1)
> > plain min max first last
> reverse rev..rst rev..ast sort sor..rst
> sor..ast
> > 0) 0.008496 0.008642 0.008398 0.008665 0.008896
> 0.008857 0.008864 0.009749 0.009690 0.009445
> 0.008902
> > 1) 0.002694 31% 0.002678 30% 0.002692 32% 0.002766 31% 0.002753 30%
> 0.002931 33% 0.003023 34% 0.002787 28% 0.002735 28% 0.002789 29%
> 0.002943 33%
> >
> > revset #4: (-5000:-1000) and heads(-10000:-1)
> > plain min max first last
> reverse rev..rst rev..ast sort sor..rst
> sor..ast
> > 0) 0.008835 0.008711 0.008920 0.008824 0.008948
> 0.009422 0.009073 0.008751 0.009244 0.009264
> 0.009489
> > 1) 0.003033 34% 0.003027 34% 0.002885 32% 0.002911 32% 0.002850 31%
> 0.003068 32% 0.002971 32% 0.002890 33% 0.003239 35% 0.002973 32%
> 0.003068 32%
> >
> > revset #5: heads(matching(tip, "author"))
> > plain min max first last
> reverse rev..rst rev..ast sort sor..rst
> sor..ast
> > 0) 15.82091 15.47578 15.95506 15.74816 15.72207
> 15.72779 15.52043 15.65250 15.40250 15.46190
> 15.34036
> > 1) 15.29257 15.39349 15.52757 15.41417 15.58991
> 15.42382 15.46773 15.48543 15.43644 15.76070
> 15.32104
> >
> > revset #6: heads(matching(tip, "author")) and -10000:-1
> > plain min max first last
> reverse rev..rst rev..ast sort sor..rst
> sor..ast
> > 0) 15.74241 15.63808 15.46853 15.77480 15.61004
> 15.80385 15.44905 15.38059 15.34111 15.45029
> 15.85194
> > 1) 15.51474 15.45938 15.28755 15.77045 15.38245
> 15.40625 15.53653 15.31534 15.64134 15.43437
> 15.29366
> >
> > revset #7: (-10000:-1) and heads(matching(tip, "author"))
> > plain min max first last
> reverse rev..rst rev..ast sort sor..rst
> sor..ast
> > 0) 15.37988 15.59717 16.07863 15.29263 15.46472
> 15.84978 15.35538 15.50673 15.37396 15.42426
> 15.44425
> > 1) 15.51504 15.38657 15.30847 15.39458 15.60453
> 15.26237 15.45240 15.34210 15.36410 15.53354
> 15.67735
> >
>
>
Nice work! Only reviewing the commit message as I don't know rust. Can you
mention on which repo these benchmarks were performed?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20190117/b66c5a6a/attachment.html>
More information about the Mercurial-devel
mailing list