summaryrefslogtreecommitdiff
path: root/perl
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2021-05-28 09:23:52 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-05-28 09:38:07 (GMT)
commit17530b2ed2eac62706b8bbbcf93f62866f651ffd (patch)
treec64f00c1321765a53b58101ee50e4cd4ce443dd8 /perl
parentc95e3a3f0b8107b5dc7eac9dfdb9e5238280c9fb (diff)
downloadgit-17530b2ed2eac62706b8bbbcf93f62866f651ffd.zip
git-17530b2ed2eac62706b8bbbcf93f62866f651ffd.tar.gz
git-17530b2ed2eac62706b8bbbcf93f62866f651ffd.tar.bz2
perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd()
It has been pointed out[1] that cwd() invokes "pwd(1)" while getcwd() is a Perl-native XS function. For what we're using these for we can use getcwd(). The performance difference is miniscule, we're saving on the order of a millisecond or so, see [2] below for the benchmark. I don't think this matters in practice for optimizing git-send-email or perl execution (unlike the patches leading up to this one). But let's do it regardless of that, if only so we don't have to think about this as a low-hanging fruit anymore. 1. https://lore.kernel.org/git/20210512180517.GA11354@dcvr/ 2. $ perl -MBenchmark=:all -MCwd -wE 'cmpthese(10000, { getcwd => sub { getcwd }, cwd => sub { cwd }, pwd => sub { system "pwd >/dev/null" }})' (warning: too few iterations for a reliable count) Rate pwd cwd getcwd pwd 982/s -- -48% -100% cwd 1890/s 92% -- -100% getcwd 10000000000000000000/s 1018000000000000000% 529000000000000064% - Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'perl')
-rw-r--r--perl/Git.pm2
1 files changed, 1 insertions, 1 deletions
diff --git a/perl/Git.pm b/perl/Git.pm
index 5562c0c..090a7df 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -405,7 +405,7 @@ sub command_bidi_pipe {
if ($self) {
shift;
require Cwd;
- $cwd_save = Cwd::cwd();
+ $cwd_save = Cwd::getcwd();
_setup_git_cmd_env($self);
}
require IPC::Open2;