X Tutup
Skip to content

Extremely slow on larger repos #89

@asteele0

Description

@asteele0

I work on a large repo, and I wanted to see if this tool could help my team. It seems like it would, but it is prohibitively slow to use.
Is this level of performance expected, or have I maybe set something up incorrectly?

Large repo

git-sim log -n 2: 24m 5s 7ms

git-sizer output

Processing blobs: 121739
Processing trees: 149846
Processing commits: 17891
Matching commits to trees: 17891
Processing annotated tags: 1491
Processing references: 12914

Name Value Level of concern
Biggest objects
* Trees
* Maximum entries [1] 15.9 k ***************
* Blobs
* Maximum size [2] 75.1 MiB *******
Biggest checkouts
* Maximum path depth [3] 17 *
* Maximum path length [4] 173 B *

Medium repo

I ran it on a medium-ish size repo as another reference point.

git-sim log: 1m 17s 949ms
git-sim log -n 2: 24s 134ms

These times are more acceptable, although still slower than I'd like.

git-sizer output

Processing blobs: 5497
Processing trees: 3449
Processing commits: 977
Matching commits to trees: 977
Processing annotated tags: 0
Processing references: 4399

Name Value Level of concern
Biggest objects
* Trees
* Maximum entries [1] 3.84 k ***
* Blobs
* Maximum size [2] 68.1 MiB *******

Dummy repo

As a control I ran it on the dummy repo generated from

git-dummy --name="dummy-repo" --branches=3 --commits=10

git-sim log: 5s 305ms

Then for funsies I created a few more dummy repos, running log on them:
git-dummy --name="dummy-repo" --branches=5 --commits=100: 5s 331ms
git-dummy --name="dummy-repo" --branches=50 --commits=100: 12s 852ms
git-dummy --name="dummy-repo" --branches=10 --commits=500: 5s 388ms

It's interesting, it looks like number of commits doesn't terribly affect the results, but the number of branches does.

Environment

Windows 10.0.19044 Build 19044
git-sim version 0.3.0
Python 3.10.5
manimce 0.17.3
git version 2.40.1.windows.1
Windows Terminal Version: 1.16.10261.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      X Tutup