diff options
author | Eric Wong <e@80x24.org> | 2021-02-07 23:05:20 -1000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-02-08 22:07:50 +0000 |
commit | ecd4e2e20f1af200697e54c2a322a459cdf4c5fc (patch) | |
tree | b7c532d20f6cd02f8280a9b3d533d5e4ebe6e4c0 /lib/PublicInbox/Git.pm | |
parent | fbb7ccabbf54a4054e583dfabc4d0c4cbe2844cb (diff) | |
download | public-inbox-ecd4e2e20f1af200697e54c2a322a459cdf4c5fc.tar.gz |
This is necessary to avoid slowdowns with pathological cases with many dates in the query, since each rev-parse invocation takes ~5ms. This is immeasurably slower with one open-ended range, but already faster with any closed range featuring two dates which require parsing via git.
Diffstat (limited to 'lib/PublicInbox/Git.pm')
-rw-r--r-- | lib/PublicInbox/Git.pm | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm index 9207962b..ac7ff267 100644 --- a/lib/PublicInbox/Git.pm +++ b/lib/PublicInbox/Git.pm @@ -377,8 +377,10 @@ sub qx { } sub date_parse { - my $d = $_[0]->qx('rev-parse', "--since=$_[1]"); - substr($d, length('--max-age='), -1) + my $self = shift; + map { + substr($_, length('--max-age='), -1) + } $self->qx('rev-parse', map { "--since=$_" } @_); } # check_async and cat_async may trigger the other, so ensure they're |