以下のブログや、
http://lambdasakura.hatenablog.com/entry/2013/03/22/000211
http://fujii.github.io/2014/02/13/emacs-magit-runs-too-slowly-on-windows/
以下の stackoverflow で紹介されていますが、
http://stackoverflow.com/questions/21753418/why-is-process-file-git-slower-than-process-file-shell-command-git-on-em
NTEmacs では、shell を介さないでサブプロセスを実行すると、なぜか shell を介した場合の約10倍、実行時間がかかってました。
この問題どうやら、emacs 24.4 で解決しているみたいです。詳細は以下を参照。
GNU bug report logs - #18420 (http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18420)
GNU bug report logs - #18626 (http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18626)
GNU bug report logs - #18420 の修正内容
https://lists.gnu.org/archive/html/emacs-diffs/2014-09/msg00117.html
自分の環境でのベンチマーク(Windows7 NTEmacs 24.5.1 Msys2)
(benchmark 10 '(call-process "git"))
"Elapsed time: 0.265200s"
(benchmark 10 '(process-file "git"))
"Elapsed time: 0.265200s"
(benchmark 10 '(call-process-shell-command "git"))
"Elapsed time: 0.358801s"
(benchmark 10 '(process-file-shell-command "git"))
"Elapsed time: 0.358801s"
(benchmark 10 '(shell-command-to-string "git"))
"Elapsed time: 0.358801s"