Volume XXII, number 279Tuesday, October 6, 2026Latest message 23 minutes ago

The Git List

News and archive of git@vger.kernel.org, since April 2005

Windows: ~1 GB RAM per git process, many concurrent (2.56.0.windows.1)

3 messages between Oct 2, 2026 and Oct 2, 2026, from Pierre Bruno, brian m. carlson, Jeff King.

Plain Markdown or JSON for tools and agents.

Pierre BrunoOct 2, 2026, 11:04 UTC on lore
Hi,

On Windows, git status-type commands use about 1 GB of RAM per process, and dozens run at once when I use coding agents (OpenCode and Oh My Pi) in a repository. CPU is near 0%, disk I/O is steady, and the total is several GB. Since two unrelated tools cause it, I suspect git or my repo.

Expected: a few short-lived git processes with far less memory.
git version 2.56.0.windows.1 (commit 49d759b698127791a5f3f2759c69b983846711dd,
fsmonitor--daemon enabled), Windows <version>
Repo: <N files / GB>, <N> untracked files
Manual 'git status' with no other tool running: <fast/slow, memory>
Stable 2.55.0: <same/different>
Command line seen in Task Manager: <paste>

Is ~1 GB per process expected here, and is there a recommended config to reduce it? Full 'git bugreport' attached.

Thanks, Pierre Bruno

brian m. carlsonOct 2, 2026, 19:28 UTC in reply to Pierre Bruno on lore

Re: Windows: ~1 GB RAM per git process, many concurrent (2.56.0.windows.1)

On 2026-10-02 at 11:04:00, Pierre Bruno wrote:
Show 19 quoted lines
> Hi,
> 
> On Windows, git status-type commands use about 1 GB of RAM per
> process, and dozens run at once when I use coding agents (OpenCode and
> Oh My Pi) in a repository. CPU is near 0%, disk I/O is steady, and the
> total is several GB. Since two unrelated tools cause it, I suspect git
> or my repo.
> 
> Expected: a few short-lived git processes with far less memory.
> 
> git version 2.56.0.windows.1 (commit 49d759b698127791a5f3f2759c69b983846711dd,
> fsmonitor--daemon enabled), Windows <version>
> Repo: <N files / GB>, <N> untracked files
> Manual 'git status' with no other tool running: <fast/slow, memory>
> Stable 2.55.0: <same/different>
> Command line seen in Task Manager: <paste>
> 
> Is ~1 GB per process expected here, and is there a recommended config to
> reduce it? Full 'git bugreport' attached.

I think you omitted the attachment, but in any event, I would say that this is not normally expected for `git status`. We'd really need to know what the command line of those processes is for us to know what they're for; for instance, you may be triggering maintenance on the repository, in which case packing a large repository could legitimately use that much memory. Similarly, if you're using a file system monitor process, that could consume a large amount of memory in a large repository.

I don't personally use Windows, so I'm afraid I can't tell you how to get that information there. Once you have it, though, it should be clearer if that's a reasonable amount of memory to be using given the size of your repository.

-- 
brian m. carlson (they/them)
Toronto, Ontario, CA
Jeff KingOct 2, 2026, 22:19 UTC in reply to Pierre Bruno on lore

Re: Windows: ~1 GB RAM per git process, many concurrent (2.56.0.windows.1)

On Fri, Oct 02, 2026 at 11:04:00AM +0000, Pierre Bruno wrote:
Show 5 quoted lines
> On Windows, git status-type commands use about 1 GB of RAM per
> process, and dozens run at once when I use coding agents (OpenCode and
> Oh My Pi) in a repository. CPU is near 0%, disk I/O is steady, and the
> total is several GB. Since two unrelated tools cause it, I suspect git
> or my repo.

Is that counting shared, mmap'd memory? Git will mmap the on-disk packfiles (or on Windows, CreateFileMapping/MapViewOfFile). So if your repository has a 1GB packfile, that could explain it. And it can lead to two unintuitive conclusions:

  1. If you have several git-status processes, they're sharing all of
     those pages. So it's still only 1GB of memory use.
  2. Git will make a large map and assume the OS will fault in only the
     pages that are needed. So you may see a large virtual memory size,
     but a lower resident size (these are the terms I'd expect from
     "top" on Linux; I don't know what terms you might see on Windows).

You may also see a large resident size if the OS has faulted in all of those pages (e.g., due to other commands). Ironically this is a sign that you _don't_ have a lot of memory pressure (otherwise, the unused pages would have been dropped). Again, this is coming from the Linux side of things; I don't know how aggressively (or not) Windows is about faulting in or releasing pages from mapped files.

-Peff

Back to recent threads