From: Jeff King <peff@peff.net>
To: Joey Hess <id@joeyh.name>
Cc: git <git@vger.kernel.org>
Subject: Re: git status OOM on mmap of large file
Date: Thu, 24 Jan 2019 14:28:31 -0500 [thread overview]
Message-ID: <20190124192831.GA14201@sigill.intra.peff.net> (raw)
In-Reply-To: <20190124191836.GA31073@sigill.intra.peff.net>
On Thu, Jan 24, 2019 at 02:18:36PM -0500, Jeff King wrote:
> > I did some benchmarking, using cat as the clean filter:
> > [...]
> > From this, it looks like the file has to be quite large before the
> > preallocation makes a sizable improvement to runtime, and the
> > smudge/clean filters have to be used for actual content filtering
> > (not for hash generation purposes as git-annex and git-lfs use it).
> > An unusual edge case I think. So hint == 0 seems fine.
>
> Thanks for these timings! I agree that "hint == 0" is probably
> reasonable, then.
One other minor point to consider: on some systems over-allocating
actually isn't that expensive, because pages are actually allocated
until we write to them, and malloc() is perfectly happy to overcommit
memory. Your case would only run into problems on Linux when malloc()
actually refuses the allocation (so limiting ourselves to "too large but
still reasonable" is a valid strategy there).
But I doubt that's something we should be relying on in general. There
are many systems that don't overcommit.
-Peff
next prev parent reply other threads:[~2019-01-24 20:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-22 22:07 git status OOM on mmap of large file Joey Hess
2019-01-24 0:39 ` brian m. carlson
2019-01-24 12:14 ` Jeff King
2019-01-24 17:05 ` Joey Hess
2019-01-24 12:10 ` Jeff King
2019-01-24 12:54 ` Duy Nguyen
2019-01-24 18:38 ` Joey Hess
2019-01-24 19:18 ` Jeff King
2019-01-24 19:28 ` Jeff King [this message]
2019-01-24 20:36 ` [PATCH] avoid unncessary malloc of whole file size Joey Hess
2019-01-24 21:12 ` Junio C Hamano
2019-01-24 21:18 ` Jeff King
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190124192831.GA14201@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=id@joeyh.name \
/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.
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 NNTP newsgroup(s).