Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lazygit very slow on osx sonoma and small repo #3980

Open
diego898 opened this issue Oct 10, 2024 · 1 comment
Open

Lazygit very slow on osx sonoma and small repo #3980

diego898 opened this issue Oct 10, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@diego898
Copy link

diego898 commented Oct 10, 2024

Describe the bug
lazygit is very slow to give diffs and slows down terminal even after exit for a few seconds

To Reproduce
Steps to reproduce the behavior:

  1. launch lazygit
  2. scroll down some unstages changes
  3. observe "loading..."

Expected behavior
Previously, on ubuntu it was lightning fast

Screenshots

Screen.Recording.2024-10-10.at.12.26.28.PM.mov

Version info:

➜  ~ lazygit --version
commit=, build date=, build source=homebrew, version=0.44.1, os=darwin, arch=arm64, git version=2.47.0
➜  ~ git --version
git version 2.47.0
➜  ~ which git
/opt/homebrew/bin/git

Macosx sonoma 14.7

Additional context
Ive also tried this using just the git that ships with mac (2.39) instead of homebrew - same issue
Also on bash using native terminal app - same issue

lazygit logs:

➜  ~ lazygit --logs
Tailing log file /Users/dmesa/.local/state/lazygit/development.log

Oct 10 12:18:44 |INFO| refreshing the following scopes in sync mode: files
Oct 10 12:18:44 |INFO| Heap memory in use: 4.2 MB
Oct 10 12:18:44 |INFO| refreshed merge conflicts in 508.834µs
Oct 10 12:18:47 |INFO| git tag --list -n --sort=-creatordate (4.524746333s)
Oct 10 12:18:47 |INFO| postRefreshUpdate for tags took 20.5µs
Oct 10 12:18:49 |INFO| Receiving focus - refreshing
Oct 10 12:18:49 |INFO| refreshing all scopes in async mode
Oct 10 12:18:49 |DEBU| RunCommand command="git tag --list -n --sort=-creatordate"
Oct 10 12:18:49 |INFO| Refresh took 638µs
Oct 10 12:18:49 |DEBU| RunCommand command="git stash list -z --pretty=%ct|%gs"
Oct 10 12:18:52 |INFO| git status --untracked-files=all --porcelain -z --find-renames=50% (9.02547275s)
Oct 10 12:18:52 |DEBU| using cache for key status.showUntrackedFiles
Oct 10 12:18:52 |INFO| postRefreshUpdate for submodules took 15.708µs
Oct 10 12:18:52 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z --find-renames=50%"
Oct 10 12:18:52 |INFO| postRefreshUpdate for files took 788.542µs
Oct 10 12:18:54 |INFO| Heap memory in use: 6.3 MB
Oct 10 12:18:56 |INFO| git rev-parse --abbrev-ref --verify HEAD (13.5325895s)
Oct 10 12:18:56 |DEBU| RunCommand command="git merge-base master master@{u}"
Oct 10 12:18:56 |DEBU| RunCommand command="git merge-base HEAD refs/remotes/origin/master"
Oct 10 12:19:01 |INFO| git for-each-ref --sort=refname --format=%(refname:short) refs/remotes (18.03377775s)
Oct 10 12:19:01 |INFO| postRefreshUpdate for remotes took 188.667µs
Oct 10 12:19:01 |INFO| postRefreshUpdate for remoteBranches took 5.083µs
Oct 10 12:19:01 |INFO| git merge-base HEAD refs/remotes/origin/master (4.858140375s)
Oct 10 12:19:01 |INFO| git -c log.showSignature=false log -g --abbrev=40 --format=%h%x00%ct%x00%gs%x00%p (18.392961875s)
Oct 10 12:19:01 |INFO| postRefreshUpdate for reflogCommits took 46.417µs
Oct 10 12:19:01 |DEBU| RunCommand command="git for-each-ref --sort=-committerdate --format=%(HEAD)%00%(refname:short)%00%(upstream:short)%00%(upstream:track)%00%(push:track)%00%(subject)%00%(objectname)%00%(committerdate:unix) refs/heads"
Oct 10 12:19:01 |INFO| git stash list -z --pretty=%ct|%gs (18.393094792s)
Oct 10 12:19:01 |INFO| postRefreshUpdate for stash took 7.125µs
Oct 10 12:19:01 |INFO| git status --untracked-files=all --porcelain -z --find-renames=50% (9.365037958s)
Oct 10 12:19:01 |INFO| refreshed files in 17.30980925s
Oct 10 12:19:01 |INFO| Refresh took 17.31084075s
Oct 10 12:19:01 |DEBU| using cache for key status.showUntrackedFiles
Oct 10 12:19:01 |INFO| refreshing the following scopes in sync mode: files
Oct 10 12:19:01 |INFO| refreshed merge conflicts in 46.667µs
Oct 10 12:19:01 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z --find-renames=50%"
Oct 10 12:19:01 |INFO| git stash list -z --pretty=%ct|%gs (12.692843791s)
Oct 10 12:19:01 |INFO| postRefreshUpdate for stash took 77.875µs
Oct 10 12:19:01 |INFO| git -c log.showSignature=false log -g --abbrev=40 --format=%h%x00%ct%x00%gs%x00%p (12.697166375s)
Oct 10 12:19:01 |INFO| postRefreshUpdate for reflogCommits took 34.541µs
Oct 10 12:19:01 |INFO| git merge-base master master@{u} (4.872367542s)
Oct 10 12:19:01 |INFO| git for-each-ref --sort=-committerdate --format=%(HEAD)%00%(refname:short)%00%(upstream:short)%00%(upstream:track)%00%(push:track)%00%(subject)%00%(objectname)%00%(committerdate:unix) refs/heads (16.405167ms)
Oct 10 12:19:01 |DEBU| RunCommand command="git worktree list --porcelain"
Oct 10 12:19:01 |INFO| git for-each-ref --sort=refname --format=%(refname:short) refs/remotes (12.706067333s)
Oct 10 12:19:01 |INFO| postRefreshUpdate for remotes took 121.375µs
Oct 10 12:19:01 |INFO| postRefreshUpdate for remoteBranches took 8.958µs
Oct 10 12:19:01 |INFO| git tag --list -n --sort=-creatordate (12.706366083s)
Oct 10 12:19:01 |INFO| postRefreshUpdate for tags took 6.583µs
Oct 10 12:19:01 |INFO| postRefreshUpdate for submodules took 15.917µs
Oct 10 12:19:01 |INFO| postRefreshUpdate for files took 272.333µs
Oct 10 12:19:01 |INFO| git log HEAD --topo-order --oneline --pretty=format:%H%x00%at%x00%aN%x00%ae%x00%D%x00%p%x00%m%x00%s --abbrev=40 -300 --no-show-signature -- (4.890090375s)
Oct 10 12:19:01 |DEBU| using cache for key rebase.updateRefs
Oct 10 12:19:01 |INFO| postRefreshUpdate for commits took 181.167µs
Oct 10 12:19:01 |DEBU| RunCommand command="git rev-parse --abbrev-ref --verify HEAD"
Oct 10 12:19:01 |INFO| git status --untracked-files=all --porcelain -z --find-renames=50% (30.352167ms)
Oct 10 12:19:01 |INFO| git worktree list --porcelain (15.403375ms)
Oct 10 12:19:01 |DEBU| using cache for key status.showUntrackedFiles
Oct 10 12:19:01 |DEBU| RunCommand command="git -C /Users/dmesa/.dotfiles rev-parse --path-format=absolute --absolute-git-dir"
Oct 10 12:19:01 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z --find-renames=50%"
Oct 10 12:19:01 |INFO| git rev-parse --abbrev-ref --verify HEAD (8.756709ms)
Oct 10 12:19:01 |DEBU| RunCommand command="git merge-base master master@{u}"
Oct 10 12:19:01 |DEBU| RunCommand command="git merge-base HEAD refs/remotes/origin/master"
Oct 10 12:19:01 |INFO| postRefreshUpdate for submodules took 42.833µs
Oct 10 12:19:01 |INFO| postRefreshUpdate for files took 555.166µs
Oct 10 12:19:01 |INFO| git -C /Users/dmesa/.dotfiles rev-parse --path-format=absolute --absolute-git-dir (11.147625ms)
Oct 10 12:19:01 |INFO| postRefreshUpdate for worktrees took 351.125µs
Oct 10 12:19:01 |INFO| postRefreshUpdate for localBranches took 67.333µs
Oct 10 12:19:01 |INFO| git status --untracked-files=all --porcelain -z --find-renames=50% (18.914208ms)
Oct 10 12:19:01 |INFO| refreshed files in 50.704334ms
Oct 10 12:19:01 |INFO| Refresh took 50.925917ms
Oct 10 12:19:01 |INFO| git merge-base master master@{u} (14.426416ms)
Oct 10 12:19:01 |INFO| git log HEAD --topo-order --oneline --pretty=format:%H%x00%at%x00%aN%x00%ae%x00%D%x00%p%x00%m%x00%s --abbrev=40 -300 --no-show-signature -- (13.981791ms)
Oct 10 12:19:01 |INFO| git merge-base HEAD refs/remotes/origin/master (13.676041ms)
Oct 10 12:19:01 |DEBU| using cache for key rebase.updateRefs
Oct 10 12:19:01 |INFO| postRefreshUpdate for commits took 305.542µs
Oct 10 12:19:01 |DEBU| using cache for key rebase.updateRefs
Oct 10 12:19:01 |DEBU| RunCommand command="git for-each-ref --sort=-committerdate --format=%(HEAD)%00%(refname:short)%00%(upstream:short)%00%(upstream:track)%00%(push:track)%00%(subject)%00%(objectname)%00%(committerdate:unix) refs/heads"
Oct 10 12:19:01 |INFO| postRefreshUpdate for submodules took 46.375µs
Oct 10 12:19:01 |INFO| postRefreshUpdate for files took 369.875µs
Oct 10 12:19:01 |INFO| git for-each-ref --sort=-committerdate --format=%(HEAD)%00%(refname:short)%00%(upstream:short)%00%(upstream:track)%00%(push:track)%00%(subject)%00%(objectname)%00%(committerdate:unix) refs/heads (8.750791ms)
Oct 10 12:19:01 |DEBU| RunCommand command="git worktree list --porcelain"
Oct 10 12:19:01 |INFO| git worktree list --porcelain (4.936083ms)
Oct 10 12:19:01 |DEBU| RunCommand command="git -C /Users/dmesa/.dotfiles rev-parse --path-format=absolute --absolute-git-dir"
Oct 10 12:19:01 |INFO| git -C /Users/dmesa/.dotfiles rev-parse --path-format=absolute --absolute-git-dir (4.649542ms)
Oct 10 12:19:01 |INFO| postRefreshUpdate for worktrees took 29.875µs
Oct 10 12:19:01 |INFO| postRefreshUpdate for localBranches took 56.583µs
Oct 10 12:19:01 |DEBU| using cache for key rebase.updateRefs
Oct 10 12:19:04 |INFO| Heap memory in use: 5.0 MB
Oct 10 12:19:04 |INFO| refreshing the following scopes in sync mode: files
Oct 10 12:19:04 |INFO| refreshed merge conflicts in 432.958µs
Oct 10 12:19:04 |DEBU| using cache for key status.showUntrackedFiles
Oct 10 12:19:04 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z --find-renames=50%"

Am I reading this log correctly that some git operations took 9s? 18s? etc?

@diego898 diego898 added the bug Something isn't working label Oct 10, 2024
@diego898 diego898 changed the title Mac Lazygit very slow on osx sonoma and small repo Oct 10, 2024
@mark2185
Copy link
Collaborator

There was a similar issue recently that was solved by updating delta.

Does this happen if you don't use delta as your pager?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants