git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Derrick Stolee <stolee@gmail.com>
To: "Git List" <git@vger.kernel.org>, "Jeff King" <peff@peff.net>,
	"Junio C Hamano" <gitster@pobox.com>,
	"Jakub Narębski" <jnareb@gmail.com>,
	"Derrick Stolee" <dstolee@microsoft.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Stefan Beller" <sbeller@google.com>
Subject: Re: [RFC] Generation Number v2
Date: Mon, 29 Oct 2018 16:25:40 -0400	[thread overview]
Message-ID: <3576719c-3cfb-547a-3548-3aaebfe6e8a2@gmail.com> (raw)
In-Reply-To: <6367e30a-1b3a-4fe9-611b-d931f51effef@gmail.com>

Here is a re-formatted version of the tables I introduced earlier.
The tables were too wide for public-inbox to render correctly (when
paired with my email client). Hopefully this bulleted-list format
works better. Thanks, Stefan, for pointing out the rendering
problems!

### Test 1: `git log --topo-order -N`

This test focuses on the number of commits that are parsed during
a `git log --topo-order` before writing `N` commits to output.

You can reproduce this test using `topo-order-tests.sh` and
see all the data in `topo-order-summary.txt`. The values reported
here are a sampling of the data, ignoring tests where all values
were the same or extremely close in value.

android-base, N = 100
     V0: 5487
     V1: 8534
     V2: 6937
     V3: 6419
     V4: 6453
android-base, N = 1000
     V0: 36029
     V1: 44030
     V2: 41493
     V3: 41206
     V4: 45431
chromium, N = 100
     V0:    101
     V1: 424406
     V2:    101
     V3:    101
     V4:    101
gerrit, N = 100
     V0: 8212
     V1: 8533
     V2:  164
     V3:  159
     V4:  162
gerrit, N = 1000
     V0: 8512
     V1: 8533
     V2: 1990
     V3: 1973
     V4: 3766
Linux, N = 100
     V0: 12458
     V1: 12444
     V2: 13683
     V3: 13123
     V4: 13124
Linux, N = 1000
     V0: 24436
     V1: 26247
     V2: 27878
     V3: 26430
     V4: 27875
Linux, N = 10000
     V0: 30364
     V1: 28891
     V2: 27878
     V3: 26430
     V4: 27875
electron, N = 1000
     V0: 19927
     V1: 18733
     V2:  1072
     V3: 18214
     V4: 18214
Ffmpeg, N = 10000
     V0: 32154
     V1: 47429
     V2: 10435
     V3: 11054
     V4: 11054
jgit, N = 1000
     V0: 1550
     V1: 6264
     V2: 1067
     V3: 1060
     V4: 1233
julia, N = 10000
     V0: 43043
     V1: 43043
     V2: 10201
     V3: 23505
     V4: 23828
odoo, N = 1000
     V0: 17175
     V1:  9714
     V2:  4043
     V3:  4046
     V4:  4111
php-src, N = 1000
     V0: 19014
     V1: 27530
     V2:  1311
     V3:  1305
     V4:  1320
rails, N = 100
     V0: 1420
     V1: 2041
     V2: 1757
     V3: 1428
     V4: 1441
rails, N = 1000
     V0:  7952
     V1: 10145
     V2: 10053
     V3:  8373
     V4:  8373
swift, N = 1000
     V0: 1914
     V1: 4004
     V2: 2071
     V3: 1939
     V4: 1940
tensorflow, N = 1000
     V0: 10019
     V1: 39221
     V2:  6711
     V3: 10051
     V4: 10051
TypeScript, N = 1000
     V0:  2873
     V1: 12014
     V2:  3049
     V3:  2876
     V4:  2876


### Test 2: `git log --topo-order -10 A..B`

This test focuses on the number of commits that are parsed during
a `git log --topo-order A..B` before writing ten commits to output.
Since we fix a very small set of output commits, we care more about
the part of the walk that determines which commits are reachable
from `B` but not reachable from `A`. This part of the walk uses
commit date as a heuristic in the existing implementation.

You can reproduce this test using `topo-compare-tests.sh` and
see all the data in `topo-compare-summary.txt`. The values reported
here are a sampling of the data, ignoring tests where all values
were the same or extremely close in value.

_Note:_ For some of the rows, the `A` and `B` values may be
swapped from what is expected. This is due to (1) a bug in the
reference implementation that doesn't short-circuit the walk
when `A` can reach `B`, and (2) data-entry errors by the author.
The bug can be fixed, but would have introduced strange-looking
rows in this table.

android-base 53c1972bc8f 92f18ac3e39
   OLD: 39403
    V0:  1544
    V1:  6957
    V2:    26
    V3:  1015
    V4:  1098
gerrit c4311f7642 777a8cd1e0
   OLD:  6457
    V0:  7836
    V1: 10869
    V2:   415
    V3:   414
    V4:   445
electron 7da7dd85e addf069f2
   OLD: 18164
    V0:   945
    V1:  6528
    V2:    17
    V3:    17
    V4:    18
julia 7faee1b201 e2022b9f0f
   OLD: 22800
    V0:  4221
    V1: 12710
    V2:   377
    V3:   213
    V4:   213
julia ae69259cd9 c8b5402afc
   OLD:  1864
    V0:  1859
    V1: 13287
    V2:    12
    V3:  1859
    V4:  1859
Linux 69973b830859 c470abd4fde4
   OLD: 111692
    V0:  77263
    V1:  96598
    V2:  80238
    V3:  76332
    V4:  76495
Linux c3b92c878736 19f949f52599
   OLD: 167418
    V0:   5736
    V1:   4684
    V2:   9675
    V3:   3887
    V4:   3923
Linux c8d2bc9bc39e 69973b830859
   OLD: 44940
    V0:  4056
    V1: 16636
    V2: 10405
    V3:  3475
    V4:  4022
odoo 4a31f55d0a0 93fb2b4a616
   OLD: 25139
    V0: 19528
    V1: 20418
    V2: 19874
    V3: 19634
    V4: 27247
swift 4046359efd b34b6a14c7
   OLD: 13411
    V0:   662
    V1:   321
    V2:    12
    V3:    80
    V4:   134
tensorflow ec6d17219c fa1db5eb0d
   OLD: 10373
    V0:  4762
    V1: 36272
    V2:   174
    V3:  3631
    V4:  3632
TypeScript 35ea2bea76 123edced90
   OLD:  3450
    V0:   267
    V1: 10386
    V2:    27
    V3:   259
    V4:   259


### Test 3: `git merge-base A B`

This test focuses on the number of commits that are parsed during
a `git merge-base A B`. This part of the walk uses commit date as
a heuristic in the existing implementation.

You can reproduce this test using `merge-base-tests.sh` and
see all the data in `merge-base-summary.txt`. The values reported
here are a sampling of the data, ignoring tests where all values
were the same or extremely close in value.

android-base 53c1972bc8f 92f18ac3e39
   OLD:  81999
    V0: 109025
    V1:  81885
    V2:  77475
    V3:  81999
    V4:  82001
gerrit c4311f7642 777a8cd1e0
   OLD: 6468
    V0: 7995
    V1: 6566
    V2: 6478
    V3: 6468
    V4: 6468
electron 7da7dd85e addf069f2
   OLD: 18160
    V0: 19871
    V1: 18670
    V2:  2231
    V3: 18160
    V4: 18160
julia 7faee1b201 e2022b9f0f
   OLD: 22803
    V0: 42339
    V1: 42212
    V2:  6803
    V3: 22803
    V4: 22803
julia c8b5402afc ae69259cd9
   OLD:  7076
    V0: 42909
    V1: 42770
    V2:  2690
    V3:  7076
    V4:  7076
Linux 69973b830859 c470abd4fde4
   OLD: 44984
    V0: 47457
    V1: 44679
    V2: 38461
    V3: 44984
    V4: 44984
Linux c3b92c878736 19f949f52599
   OLD: 111740
    V0: 111027
    V1: 111196
    V2: 107835
    V3: 111771
    V4: 111368
Linux c8d2bc9bc39e 69973b830859
   OLD: 167468
    V0: 635579
    V1: 630138
    V2:  33716
    V3: 167496
    V4: 153774
odoo 4a31f55d0a0 93fb2b4a616
   OLD: 25150
    V0: 27259
    V1: 23977
    V2: 24041
    V3: 23974
    V4: 26829
swift 4046359efd b34b6a14c7
   OLD: 13434
    V0: 13254
    V1: 13940
    V2: 16023
    V3: 13127
    V4: 15008
tensorflow ec6d17219c fa1db5eb0d
   OLD: 10377
    V0: 10448
    V1: 10377
    V2:  8460
    V3: 10377
    V4: 10377
TypeScript 35ea2bea76 123edced90
   OLD: 3464
    V0: 3439
    V1: 3464
    V2: 3581
    V3: 3464
    V4: 3464


  parent reply	other threads:[~2018-10-29 20:25 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-29 16:55 [RFC] Generation Number v2 Derrick Stolee
2018-10-29 19:22 ` Stefan Beller
2018-10-29 20:06   ` Derrick Stolee
2018-11-01 20:06   ` Jakub Narebski
2018-11-02  9:30     ` Jakub Narebski
2018-11-03 17:27       ` Jakub Narebski
2018-10-29 20:25 ` Derrick Stolee [this message]
2018-11-01 22:13   ` Jakub Narebski
2018-10-30  3:59 ` Junio C Hamano
2018-10-31 12:30   ` Derrick Stolee
2018-11-02 13:33     ` Jakub Narebski
2018-10-31 12:54   ` Ævar Arnfjörð Bjarmason
2018-10-31 13:04     ` Derrick Stolee
2018-11-02 17:44       ` Jakub Narebski
2018-11-01 12:27 ` Jakub Narebski
2018-11-01 13:29   ` Derrick Stolee
2018-11-03 12:33     ` Jakub Narebski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3576719c-3cfb-547a-3548-3aaebfe6e8a2@gmail.com \
    --to=stolee@gmail.com \
    --cc=avarab@gmail.com \
    --cc=dstolee@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jnareb@gmail.com \
    --cc=peff@peff.net \
    --cc=sbeller@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).