Mercurial > hg
view contrib/python3-whitelist @ 33927:853574db5b12
encoding: add fast path of from/tolocal() for ASCII strings
This is micro optimization, but seems not bad since to/fromlocal() is called
lots of times and isasciistr() is cheap and simple.
We boldly assume that any non-ASCII characters have at least one 8-bit byte.
This isn't true for some email character sets (e.g. ISO-2022-JP and UTF-7),
but I believe no such encodings are used as a platform default. Shift_JIS,
a major crap, is okay as it should have a leading byte in 0x80-0xff range.
(with mercurial repo)
$ export HGRCPATH=/dev/null HGPLAIN=
$ hg log --time --config experimental.stabilization=all > /dev/null
(original)
time: real 7.460 secs (user 7.420+0.000 sys 0.030+0.000)
time: real 7.670 secs (user 7.590+0.000 sys 0.080+0.000)
time: real 7.560 secs (user 7.510+0.000 sys 0.040+0.000)
(this patch)
time: real 7.340 secs (user 7.260+0.000 sys 0.060+0.000)
time: real 7.260 secs (user 7.210+0.000 sys 0.030+0.000)
time: real 7.310 secs (user 7.260+0.000 sys 0.060+0.000)
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 23 Apr 2017 13:06:23 +0900 |
parents | f4433f2713d0 |
children | 492cd4bbca08 |
line wrap: on
line source
test-ancestor.py test-backwards-remove.t test-branch-tag-confict.t test-casecollision.t test-check-commit.t test-check-execute.t test-check-pyflakes.t test-check-pylint.t test-check-shbang.t test-contrib-check-code.t test-contrib-check-commit.t test-diff-issue2761.t test-diff-newlines.t test-diff-reverse.t test-diff-subdir.t test-dirstate-nonnormalset.t test-doctest.py test-duplicateoptions.py test-empty-dir.t test-empty.t test-encoding-func.py test-excessive-merge.t test-hghave.t test-imports-checker.t test-issue1089.t test-issue1993.t test-issue842.t test-locate.t test-lrucachedict.py test-manifest.py test-match.py test-merge-default.t test-merge2.t test-merge5.t test-push-checkheads-pruned-B1.t test-push-checkheads-pruned-B6.t test-push-checkheads-pruned-B7.t test-push-checkheads-superceed-A1.t test-push-checkheads-superceed-A4.t test-push-checkheads-superceed-A5.t test-push-checkheads-superceed-A8.t test-push-checkheads-unpushed-D1.t test-push-checkheads-unpushed-D6.t test-push-checkheads-unpushed-D7.t test-rename.t test-revlog-packentry.t test-run-tests.py test-terse-status.t test-unified-test.t test-update-dest.t test-update-reverse.t test-xdg.t