[PATCH 6 of 6 RFC] radixlink: use C radixlink get implementation if available

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon May 22 08:30:15 EDT 2017



On 05/22/2017 03:31 AM, Jun Wu wrote:
> # HG changeset patch
> # User Jun Wu <quark at fb.com>
> # Date 1495409961 25200
> #      Sun May 21 16:39:21 2017 -0700
> # Node ID b69ca9116b2cae29fd182c7bb545e59f16455d3f
> # Parent  6916f2eede1507237cffdb62db1baff8ded04ea5
> # Available At https://bitbucket.org/quark-zju/hg-draft
> #              hg pull https://bitbucket.org/quark-zju/hg-draft -r b69ca9116b2c
> radixlink: use C radixlink get implementation if available


Nice! Indexes for the obsstore (and others) is something I've wanted for 
a very long time. I'm very happy to see a concrete RFC there. Thanks!

I've not looked at the code yet. But I've gathered some timing data on 
the various approach around speeding up obsolescence related data.

  * obscache[1]: a small cache aimed at speeding up computation of 
'obsolete()'
  * obsmarkers indexes: (this series) aiming at improving access time 
when fetching markers related to an arbitrary nodesm
  * better compute hidden[2]: rework on the computehidden code to be 
O(non_public_visible),

In short, each approach improve different aspect and we get the best 
result when combining all of them. key numbers:
* visible 0.519358s → 0.002822s (x200),
* bumped 0.550549s → 0.029004s (x20).


Below are time analysis (and full data). Timing are in my mercurial-dev 
repository with both unstable and bookmarks blocker. (also keep in mind 
that the troubles computation algorithm (bumped, divergent) might be 
improvable).

[1] 
https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-May/098257.html 
(an equivalent is shipped within evolve for multiple weeks)

[2] 
https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-May/098308.html

Obsscache
=========

Summary: massive speed up on 'obsolete-set' and 'visible'. marginal 
impact on the rest.

impact on obsolete + visible
----------------------------

As planned, obscache provide a massive speed up when computing the 
obsolete set:

     obsolete:
       before: 0.506671 s
       after:  0.001281 s
       (x400) (including obsstore loading)

It is worth noting that even the part without the obsstore is 
significantly faster now that it can use simpler, rev-only data structure:

     obsolete:
       before: 9.633 ms
       after:  1.281 ms
       (x7.5) (obsstore loading excluded)

This result in a large speedup of hidden computation (obsstore loading 
included)

     visible (direct impact on start up time)
       before: 0.519358
       after:  0.010589
       (x50) (including obsstore loading)

impact on troubles
------------------

There are mixed impact on troubles computation (not the target of 
obscache). "unstable" do not need the obsstore content and see large 
speedup. The other see marginal or not speedup from the faster 
computation of the 'obsolete-set'.

unstable: (impact log)
   before: 0.508927
   after:  0.002641
   (x250) (including obsstore loading)

bumped:
   before: 0.550549
   after:  0.388756
   (x1.4) (including obsstore loading)

   0.013853

divergent:
   before: 0.740375
   after: 0.766295
   (+4%?) (including obsstore loading)

obsmarkers indexes
==================

Summary: good overall speed up, but obscache is much faster for 
computing the obsolete-set in particular (impact startup time)


impact on troubles
------------------

As planned, having obsmarkers indexes have a pretty good impact on 
trouble computation:

Timing including obsmarkers loading:

   bumped:
     before: 0.550549s
     after:  0.073380s
     (x7.5)

   divergent:
     before: 0.740375s
     after:  0.095617s
     (x7.7)

   unstable:
     before: 0.508927s
     after:  0.050560s
     (x10)

It is interresting to that the extra complexity make the actual trouble 
computation (obsmarkers loading excluded) a bit slower. This small 
slowdown is not a concerns given the large speed up we get overall.

Timing exclusing obsmarkers loading:

   bumped:
     before: 0.013853
     after:  0.015688

   divergent:
     before: 0.026065
     after:  0.030679

   unstable:
     before: 0.013129
     after:  0.015907


impact on obsolete + visible
----------------------------

Indexes also speeds up the 'obsolete-set' computation, in the same order 
of magnitude than the troubles computation.

obsolete:
   before: 0.506671 s
   after:  0.045813
   (x11) (including obsstore loading)

visible (direct impact on start up time)
   before: 0.519358
   after:  0.056451
   (x9) (including obsstore loading)

The impact on computation (outside of obssmarkers load) is small (in the 
wrong direction)

obsolete:
   before:  9.633 ms
   after:  10.994 ms
   (+14%) (obsstore loading excluded)

However, that speed up is much smaller than what the "obscache" brings 
us (more on this later).

obsolete:
   current:  0.506671s
   indexes:  0.045813s (x400)
   obscache: 0.001281s (x11)
   (obscache is x35 faster than indexes)

computehidden:
--------------

summary: good speed up on the compute hidden code but dominated by other 
obsstore related code without the other improvement.


The part purely about hidden computation gets a good speedup:

visible (computehidden-only):
   before: 9.79 ms
   after:  1.89 ms
   (x5)

But that speedup is negligible with the current impact of obssolescence 
computation

visible (compute obsolete included):
   before: 19.423 ms
   after:  11.532 ms
   (x1.7)

visible (obsstore loading included)
   before: 0.519358s
   after:  0.512446s
   (-1%…)

However, this get much more interresting when combine with the other 
approachs

with indexes

     visible (obsstore loading included):
       indexes: 0.056451
       both:    0.048180
       (x1.15%)

     visible (compute obsolete included):
       indexes: 0.021467
       both:    0.011532
       (x1.8)

with obscache

     visible  (obsstore loading included):
       obscache: 0.010617
       both:     0.002851
       (x3.7)

     visible (compute obsolete included):
       obscache: 0.009546
       both:     0.002695
       (x3.7)

Combine approach
----------------

The obsolete set play an important part is all the algorithms we are 
discussing here. It is used to reduce the set of revision that needs to 
be evaluated by other. This means that any speedup to the obsolete set 
will help the other sets.

So in practice combining the obscache and the indexes gives very 
interresting result. Since the obsolete-set is quickly provided by the 
obscache, the indexes have a lower number of node to probe.

bumped:
   current:  0.550549
   obscache: 0.388756 (x1.4 from current)
   indexes:  0.073380 (x7.5 from current)
   both:     0.027583 (x20 from current, x2.7 from indexes)

divergent:
   current:  0.740375
   obscache: 0.728959 (-1%)
   indexes:  0.095617 (x7.5)
   both:     0.060100 (x12 from current, x1.6 from indexes)

==========
Raw timing
==========

(Included for those who wants to dig this a bit)

Timing without obsstore loading
===============================

current default head
--------------------

! bumped
! wall 0.550549 comb 0.560000 user 0.500000 sys 0.060000 (best of 14)
! divergent
! wall 0.740375 comb 0.740000 user 0.720000 sys 0.020000 (best of 13)
! extinct
! wall 0.517173 comb 0.520000 user 0.510000 sys 0.010000 (best of 19)
! obsolete
! wall 0.506671 comb 0.510000 user 0.500000 sys 0.010000 (best of 19)
! suspended
! wall 0.519423 comb 0.520000 user 0.500000 sys 0.020000 (best of 19)
! unstable
! wall 0.508927 comb 0.510000 user 0.500000 sys 0.010000 (best of 19)
! base
! wall 0.000644 comb 0.000000 user 0.000000 sys 0.000000 (best of 3722)
! immutable
! wall 0.003609 comb 0.000000 user 0.000000 sys 0.000000 (best of 747)
! served
! wall 0.361421 comb 0.360000 user 0.340000 sys 0.020000 (best of 19)
! visible
! wall 0.519358 comb 0.520000 user 0.510000 sys 0.010000 (best of 18)

obscache + better troubles code
-------------------------------

! bumped
! wall 0.388756 comb 0.390000 user 0.360000 sys 0.030000 (best of 21)
! divergent
! wall 0.766295 comb 0.750000 user 0.720000 sys 0.030000 (best of 13)
! extinct
! wall 0.009723 comb 0.010000 user 0.010000 sys 0.000000 (best of 242)
! obsolete
! wall 0.001281 comb 0.000000 user 0.000000 sys 0.000000 (best of 2045)
! suspended
! wall 0.009258 comb 0.010000 user 0.010000 sys 0.000000 (best of 302)
! unstable
! wall 0.002641 comb 0.000000 user 0.000000 sys 0.000000 (best of 984)
! base
! wall 0.000540 comb 0.000000 user 0.000000 sys 0.000000 (best of 4830)
! immutable
! wall 0.003195 comb 0.000000 user 0.000000 sys 0.000000 (best of 835)
! served
! wall 0.012776 comb 0.010000 user 0.010000 sys 0.000000 (best of 221)
! visible
! wall 0.010589 comb 0.010000 user 0.010000 sys 0.000000 (best of 265)

obscache
--------

! bumped
! wall 0.377486 comb 0.380000 user 0.340000 sys 0.040000 (best of 22)
! divergent
! wall 0.728959 comb 0.730000 user 0.700000 sys 0.030000 (best of 13)
! extinct
! wall 0.009772 comb 0.010000 user 0.010000 sys 0.000000 (best of 261)
! obsolete
! wall 0.001274 comb 0.000000 user 0.000000 sys 0.000000 (best of 2065)
! suspended
! wall 0.009137 comb 0.010000 user 0.010000 sys 0.000000 (best of 301)
! unstable
! wall 0.002659 comb 0.000000 user 0.000000 sys 0.000000 (best of 984)
! base
! wall 0.000540 comb 0.000000 user 0.000000 sys 0.000000 (best of 4815)
! immutable
! wall 0.003284 comb 0.000000 user 0.000000 sys 0.000000 (best of 775)
! served
! wall 0.012703 comb 0.010000 user 0.010000 sys 0.000000 (best of 208)
! visible
! wall 0.010617 comb 0.010000 user 0.010000 sys 0.000000 (best of 261)


better compute hidden code
--------------------------

! bumped
! wall 0.557672 comb 0.550000 user 0.490000 sys 0.060000 (best of 13)
! divergent
! wall 0.753060 comb 0.760000 user 0.730000 sys 0.030000 (best of 13)
! extinct
! wall 0.527832 comb 0.540000 user 0.530000 sys 0.010000 (best of 18)
! obsolete
! wall 0.515150 comb 0.520000 user 0.510000 sys 0.010000 (best of 18)
! suspended
! wall 0.518975 comb 0.520000 user 0.500000 sys 0.020000 (best of 18)
! unstable
! wall 0.511637 comb 0.520000 user 0.500000 sys 0.020000 (best of 19)
! base
! wall 0.000622 comb 0.000000 user 0.000000 sys 0.000000 (best of 3849)
! immutable
! wall 0.003492 comb 0.000000 user 0.000000 sys 0.000000 (best of 736)
! served
! wall 0.369040 comb 0.360000 user 0.340000 sys 0.020000 (best of 20)
! visible
! wall 0.512446 comb 0.520000 user 0.510000 sys 0.010000 (best of 19)

obsmarkers indexes
------------------

! bumped
! wall 0.073380 comb 0.070000 user 0.050000 sys 0.020000 (best of 100)
! divergent
! wall 0.095617 comb 0.100000 user 0.080000 sys 0.020000 (best of 99)
! extinct
! wall 0.057471 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)
! obsolete
! wall 0.045813 comb 0.050000 user 0.040000 sys 0.010000 (best of 100)
! suspended
! wall 0.057748 comb 0.060000 user 0.060000 sys 0.000000 (best of 100)
! unstable
! wall 0.050560 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)
! base
! wall 0.000566 comb 0.000000 user 0.000000 sys 0.000000 (best of 4537)
! immutable
! wall 0.003301 comb 0.010000 user 0.010000 sys 0.000000 (best of 701)
! served
! wall 0.056515 comb 0.060000 user 0.050000 sys 0.010000 (best of 100)
! visible
! wall 0.056451 comb 0.060000 user 0.050000 sys 0.010000 (best of 100)

obscache + better troubles code + better compute hidden code
------------------------------------------------------------

! bumped
! wall 0.397150 comb 0.400000 user 0.360000 sys 0.040000 (best of 21)
! divergent
! wall 0.760905 comb 0.770000 user 0.750000 sys 0.020000 (best of 13)
! extinct
! wall 0.009694 comb 0.010000 user 0.010000 sys 0.000000 (best of 266)
! obsolete
! wall 0.001295 comb 0.000000 user 0.000000 sys 0.000000 (best of 1947)
! suspended
! wall 0.009491 comb 0.000000 user 0.000000 sys 0.000000 (best of 281)
! unstable
! wall 0.002664 comb 0.000000 user 0.000000 sys 0.000000 (best of 994)
! base
! wall 0.000541 comb 0.000000 user 0.000000 sys 0.000000 (best of 4430)
! immutable
! wall 0.003231 comb 0.000000 user 0.000000 sys 0.000000 (best of 817)
! served
! wall 0.005043 comb 0.000000 user 0.000000 sys 0.000000 (best of 518)
! visible
! wall 0.002851 comb 0.000000 user 0.000000 sys 0.000000 (best of 922)

obsmarkers indexes + better compute hidden code
-----------------------------------------------

! bumped
! wall 0.073330 comb 0.070000 user 0.060000 sys 0.010000 (best of 100)
! divergent
! wall 0.096480 comb 0.090000 user 0.070000 sys 0.020000 (best of 95)
! extinct
! wall 0.058065 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)
! obsolete
! wall 0.046591 comb 0.050000 user 0.040000 sys 0.010000 (best of 100)
! suspended
! wall 0.057436 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)
! unstable
! wall 0.049854 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)
! base
! wall 0.000569 comb 0.000000 user 0.000000 sys 0.000000 (best of 4207)
! immutable
! wall 0.003275 comb 0.000000 user 0.000000 sys 0.000000 (best of 702)
! served
! wall 0.050612 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
! visible
! wall 0.048180 comb 0.050000 user 0.040000 sys 0.010000 (best of 100)

obscache + obsmarkers indexes
-----------------------------

! bumped
! wall 0.027583 comb 0.020000 user 0.000000 sys 0.020000 (best of 103)
! divergent
! wall 0.060100 comb 0.070000 user 0.040000 sys 0.030000 (best of 100)
! extinct
! wall 0.008980 comb 0.010000 user 0.010000 sys 0.000000 (best of 294)
! obsolete
! wall 0.001290 comb 0.010000 user 0.010000 sys 0.000000 (best of 1949)
! suspended
! wall 0.009255 comb 0.000000 user 0.000000 sys 0.000000 (best of 297)
! unstable
! wall 0.002650 comb 0.010000 user 0.010000 sys 0.000000 (best of 972)
! base
! wall 0.000538 comb 0.000000 user 0.000000 sys 0.000000 (best of 4845)
! immutable
! wall 0.003405 comb 0.000000 user 0.000000 sys 0.000000 (best of 759)
! served
! wall 0.013582 comb 0.010000 user 0.010000 sys 0.000000 (best of 202)
! visible
! wall 0.010321 comb 0.020000 user 0.020000 sys 0.000000 (best of 252)

All of the above combined
-------------------------

! bumped
! wall 0.029004 comb 0.030000 user 0.010000 sys 0.020000 (best of 100)
! divergent
! wall 0.060921 comb 0.060000 user 0.030000 sys 0.030000 (best of 100)
! extinct
! wall 0.009864 comb 0.020000 user 0.020000 sys 0.000000 (best of 267)
! obsolete
! wall 0.001291 comb 0.000000 user 0.000000 sys 0.000000 (best of 1902)
! suspended
! wall 0.009095 comb 0.010000 user 0.010000 sys 0.000000 (best of 307)
! unstable
! wall 0.002721 comb 0.000000 user 0.000000 sys 0.000000 (best of 928)
! base
! wall 0.000542 comb 0.000000 user 0.000000 sys 0.000000 (best of 4707)
! immutable
! wall 0.003204 comb 0.010000 user 0.010000 sys 0.000000 (best of 816)
! served
! wall 0.005248 comb 0.000000 user 0.000000 sys 0.000000 (best of 488)
! visible
! wall 0.002822 comb 0.010000 user 0.010000 sys 0.000000 (best of 923)

Timing without obsstore loading
===============================


current default head
--------------------

! bumped
! wall 0.013853 comb 0.010000 user 0.010000 sys 0.000000 (best of 169)
! divergent
! wall 0.026065 comb 0.030000 user 0.030000 sys 0.000000 (best of 108)
! extinct
! wall 0.019866 comb 0.020000 user 0.020000 sys 0.000000 (best of 143)
! obsolete
! wall 0.009633 comb 0.010000 user 0.010000 sys 0.000000 (best of 290)
! suspended
! wall 0.019831 comb 0.020000 user 0.020000 sys 0.000000 (best of 144)
! unstable
! wall 0.013129 comb 0.020000 user 0.020000 sys 0.000000 (best of 220)
! base
! wall 0.000538 comb 0.000000 user 0.000000 sys 0.000000 (best of 5001)
! immutable
! wall 0.003161 comb 0.010000 user 0.010000 sys 0.000000 (best of 824)
! served
! wall 0.021973 comb 0.020000 user 0.020000 sys 0.000000 (best of 131)
! visible
! wall 0.019423 comb 0.020000 user 0.020000 sys 0.000000 (best of 149)

obscache + better troubles code
-------------------------------

! bumped
! wall 0.004744 comb 0.000000 user 0.000000 sys 0.000000 (best of 473)
! divergent
! wall 0.016745 comb 0.020000 user 0.020000 sys 0.000000 (best of 153)
! extinct
! wall 0.009002 comb 0.010000 user 0.010000 sys 0.000000 (best of 289)
! obsolete
! wall 0.001202 comb 0.010000 user 0.010000 sys 0.000000 (best of 2129)
! suspended
! wall 0.008572 comb 0.010000 user 0.010000 sys 0.000000 (best of 320)
! unstable
! wall 0.002543 comb 0.010000 user 0.010000 sys 0.000000 (best of 1025)
! base
! wall 0.000541 comb 0.000000 user 0.000000 sys 0.000000 (best of 3774)
! immutable
! wall 0.004043 comb 0.000000 user 0.000000 sys 0.000000 (best of 604)
! served
! wall 0.011760 comb 0.010000 user 0.010000 sys 0.000000 (best of 234)
! visible
! wall 0.009546 comb 0.010000 user 0.010000 sys 0.000000 (best of 275)

obscache
--------

! bumped
! wall 0.004765 comb 0.010000 user 0.010000 sys 0.000000 (best of 524)
! divergent
! wall 0.016715 comb 0.010000 user 0.010000 sys 0.000000 (best of 154)
! extinct
! wall 0.008960 comb 0.000000 user 0.000000 sys 0.000000 (best of 298)
! obsolete
! wall 0.001202 comb 0.000000 user 0.000000 sys 0.000000 (best of 2160)
! suspended
! wall 0.008632 comb 0.010000 user 0.010000 sys 0.000000 (best of 308)
! unstable
! wall 0.002613 comb 0.000000 user 0.000000 sys 0.000000 (best of 967)
! base
! wall 0.000539 comb 0.000000 user 0.000000 sys 0.000000 (best of 4621)
! immutable
! wall 0.003134 comb 0.000000 user 0.000000 sys 0.000000 (best of 840)
! served
! wall 0.011876 comb 0.020000 user 0.020000 sys 0.000000 (best of 231)
! visible
! wall 0.009740 comb 0.010000 user 0.010000 sys 0.000000 (best of 278)

better compute hidden code
--------------------------

! bumped
! wall 0.013950 comb 0.010000 user 0.010000 sys 0.000000 (best of 167)
! divergent
! wall 0.026145 comb 0.020000 user 0.020000 sys 0.000000 (best of 107)
! extinct
! wall 0.020276 comb 0.020000 user 0.020000 sys 0.000000 (best of 142)
! obsolete
! wall 0.009619 comb 0.000000 user 0.000000 sys 0.000000 (best of 295)
! suspended
! wall 0.020310 comb 0.030000 user 0.030000 sys 0.000000 (best of 141)
! unstable
! wall 0.013182 comb 0.010000 user 0.010000 sys 0.000000 (best of 221)
! base
! wall 0.000540 comb 0.000000 user 0.000000 sys 0.000000 (best of 4816)
! immutable
! wall 0.003221 comb 0.000000 user 0.000000 sys 0.000000 (best of 812)
! served
! wall 0.014299 comb 0.020000 user 0.020000 sys 0.000000 (best of 203)
! visible
! wall 0.011532 comb 0.010000 user 0.010000 sys 0.000000 (best of 249)

obsmarkers indexes
------------------

! bumped
! wall 0.015688 comb 0.010000 user 0.010000 sys 0.000000 (best of 169)
! divergent
! wall 0.030679 comb 0.030000 user 0.030000 sys 0.000000 (best of 100)
! extinct
! wall 0.022263 comb 0.020000 user 0.020000 sys 0.000000 (best of 116)
! obsolete
! wall 0.010994 comb 0.000000 user 0.000000 sys 0.000000 (best of 251)
! suspended
! wall 0.021708 comb 0.020000 user 0.020000 sys 0.000000 (best of 118)
! unstable
! wall 0.015907 comb 0.030000 user 0.020000 sys 0.010000 (best of 166)
! base
! wall 0.000541 comb 0.000000 user 0.000000 sys 0.000000 (best of 4707)
! immutable
! wall 0.003193 comb 0.000000 user 0.000000 sys 0.000000 (best of 824)
! served
! wall 0.024085 comb 0.020000 user 0.020000 sys 0.000000 (best of 118)
! visible
! wall 0.021467 comb 0.020000 user 0.020000 sys 0.000000 (best of 135)

obscache + better troubles code + better compute hidden code
------------------------------------------------------------

! bumped
! wall 0.004740 comb 0.000000 user 0.000000 sys 0.000000 (best of 527)
! divergent
! wall 0.016711 comb 0.020000 user 0.020000 sys 0.000000 (best of 156)
! extinct
! wall 0.008835 comb 0.010000 user 0.010000 sys 0.000000 (best of 309)
! obsolete
! wall 0.001243 comb 0.010000 user 0.010000 sys 0.000000 (best of 2163)
! suspended
! wall 0.008650 comb 0.010000 user 0.010000 sys 0.000000 (best of 311)
! unstable
! wall 0.002581 comb 0.010000 user 0.010000 sys 0.000000 (best of 987)
! base
! wall 0.000540 comb 0.000000 user 0.000000 sys 0.000000 (best of 4983)
! immutable
! wall 0.003191 comb 0.000000 user 0.000000 sys 0.000000 (best of 648)
! served
! wall 0.004899 comb 0.000000 user 0.000000 sys 0.000000 (best of 506)
! visible
! wall 0.002695 comb 0.000000 user 0.000000 sys 0.000000 (best of 941)

obsmarkers indexes + better compute hidden code
-----------------------------------------------

! bumped
! wall 0.015595 comb 0.020000 user 0.020000 sys 0.000000 (best of 174)
! divergent
! wall 0.030421 comb 0.030000 user 0.030000 sys 0.000000 (best of 100)
! extinct
! wall 0.023251 comb 0.030000 user 0.030000 sys 0.000000 (best of 120)
! obsolete
! wall 0.011455 comb 0.010000 user 0.010000 sys 0.000000 (best of 248)
! suspended
! wall 0.021872 comb 0.020000 user 0.020000 sys 0.000000 (best of 127)
! unstable
! wall 0.015734 comb 0.010000 user 0.010000 sys 0.000000 (best of 185)
! base
! wall 0.000537 comb 0.000000 user 0.000000 sys 0.000000 (best of 4881)
! immutable
! wall 0.003175 comb 0.000000 user 0.000000 sys 0.000000 (best of 838)
! served
! wall 0.015574 comb 0.010000 user 0.010000 sys 0.000000 (best of 181)
! visible
! wall 0.013402 comb 0.010000 user 0.010000 sys 0.000000 (best of 212)

obscache + obsmarkers indexes
-----------------------------

! bumped
! wall 0.004439 comb 0.000000 user 0.000000 sys 0.000000 (best of 573)
! divergent
! wall 0.018190 comb 0.010000 user 0.010000 sys 0.000000 (best of 145)
! extinct
! wall 0.009484 comb 0.010000 user 0.010000 sys 0.000000 (best of 260)
! obsolete
! wall 0.001225 comb 0.000000 user 0.000000 sys 0.000000 (best of 2094)
! suspended
! wall 0.008818 comb 0.010000 user 0.010000 sys 0.000000 (best of 307)
! unstable
! wall 0.002575 comb 0.010000 user 0.010000 sys 0.000000 (best of 1021)
! base
! wall 0.000543 comb 0.000000 user 0.000000 sys 0.000000 (best of 4861)
! immutable
! wall 0.003207 comb 0.000000 user 0.000000 sys 0.000000 (best of 800)
! served
! wall 0.012323 comb 0.010000 user 0.010000 sys 0.000000 (best of 222)
! visible0.048180
! wall 0.009969 comb 0.010000 user 0.010000 sys 0.000000 (best of 273)

All of the above combined
-------------------------

! bumped
! wall 0.004685 comb 0.010000 user 0.010000 sys 0.000000 (best of 542)
! divergent
! wall 0.020665 comb 0.020000 user 0.020000 sys 0.000000 (best of 115)
! extinct
! wall 0.010872 comb 0.010000 user 0.010000 sys 0.000000 (best of 209)
! obsolete
! wall 0.001258 comb 0.000000 user 0.000000 sys 0.000000 (best of 1623)
! suspended
! wall 0.009041 comb 0.010000 user 0.010000 sys 0.000000 (best of 278)
! unstable
! wall 0.002596 comb 0.000000 user 0.000000 sys 0.000000 (best of 1014)
! base
! wall 0.000540 comb 0.000000 user 0.000000 sys 0.000000 (best of 4015)
! immutable
! wall 0.003239 comb 0.000000 user 0.000000 sys 0.000000 (best of 716)
! served
! wall 0.005287 comb 0.000000 user 0.000000 sys 0.000000 (best of 489)
! visible
! wall 0.003041 comb 0.000000 user 0.000000 sys 0.000000 (best of 845)




-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list