Mercurial-2.6-rcの並列になったupdateを試す
多数のパフォーマンスチューニングを含むMercurial-2.6のリリース候補版がリリースされた。今回のリリースからhg updateの処理が並列化されるようになったので試してみた。
インストール
バージョンを指定してインストール。
% pip install -U mercurial==2.6-rc
hg updateの速度を見てみる
2.6からhg updateが並列で動くらしいのでrhodecodeのリポジトリで試してみる。
% hg clone https://bitbucket.org/marcinkuzminski/rhodecode $ cd rhodecode
- mercurial-2.5.4
% hg up null > /dev/null; time (hg up default > /dev/null && hg up beta > /dev/null) ( hg up default > /dev/null && hg up beta > /dev/null; ) 1.56s user 0.62s system 72% cpu 3.018 total % hg up null > /dev/null; time (hg up default > /dev/null && hg up beta > /dev/null) ( hg up default > /dev/null && hg up beta > /dev/null; ) 2.15s user 0.63s system 95% cpu 2.897 total % hg up null > /dev/null; time (hg up default > /dev/null && hg up beta > /dev/null) ( hg up default > /dev/null && hg up beta > /dev/null; ) 2.41s user 0.65s system 96% cpu 3.181 total % hg up null > /dev/null; time (hg up default > /dev/null && hg up beta > /dev/null) ( hg up default > /dev/null && hg up beta > /dev/null; ) 2.10s user 0.60s system 96% cpu 2.792 total
- mercurial-2.6-rc
% hg up null > /dev/null; time (hg up default > /dev/null && hg up beta > /dev/null) ( hg up default > /dev/null && hg up beta > /dev/null; ) 2.33s user 0.78s system 116% cpu 2.684 total % hg up null > /dev/null; time (hg up default > /dev/null && hg up beta > /dev/null) ( hg up default > /dev/null && hg up beta > /dev/null; ) 2.06s user 0.66s system 134% cpu 2.024 total % hg up null > /dev/null; time (hg up default > /dev/null && hg up beta > /dev/null) ( hg up default > /dev/null && hg up beta > /dev/null; ) 2.00s user 0.64s system 137% cpu 1.913 total % hg up null > /dev/null; time (hg up default > /dev/null && hg up beta > /dev/null) ( hg up default > /dev/null && hg up beta > /dev/null; ) 2.65s user 0.79s system 118% cpu 2.908 total
mercurial-2.6-rcのCPUの部分が100%を超えている。
- 平均と差分
;; mercurial-2.5.4 (/ (+ 3.018 2.897 3.181 2.792) 4) ; => 2.972 ;; mercurial-2.6-rc (/ (+ 2.684 2.024 1.913 2.908) 4) ; => 2.38225 (- (/ (+ 3.018 2.897 3.181 2.792) 4) (/ (+ 2.684 2.024 1.913 2.908) 4)) ; => 0.58975
この例だと、0.5秒ほど早くなっている。