From: Eric Wong Date: Wed, 23 Dec 2020 08:38:51 +0000 (+0000) Subject: config: git_config_dump: pre-compile RE for split X-Git-Tag: v1.7.0~1506 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=80424a6a72dbe2b1ea7ba9bfba8f273e4da385a7;p=public-inbox.git config: git_config_dump: pre-compile RE for split It appears the Perl split() operator is not optimized for fixed strings at all. With this change, PublicInbox::Config->new (w/o ->fill_all) time is reduced from 1.81s to 1.22s on a config file with 50K inboxes. --- diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm index cd8957a1..4d143c6e 100644 --- a/lib/PublicInbox/Config.pm +++ b/lib/PublicInbox/Config.pm @@ -165,7 +165,7 @@ sub git_config_dump { return {} unless -e $file; my $cmd = [ qw(git config -z -l --includes), "--file=$file" ]; my $fh = popen_rd($cmd); - my $rv = config_fh_parse($fh, "\0", "\n"); + my $rv = config_fh_parse($fh, "\0", qr/\n/); close $fh or die "failed to close (@$cmd) pipe: $?"; $rv; }