Mercurial > hg
annotate tests/test-revlog-mmapindex.t @ 46874:84a93fa7ecfd
revlog-compression: use zstd by default (if available)
As see in changeset bb271ec2fbfb, zstd is 20% to 50% faster for reading and
writing.
Use take advantage of the new config behavior to try zstd by default, falling
back to zlib is zstd is not available on that plateform.
Differential Revision: https://phab.mercurial-scm.org/D10326
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 06 Apr 2021 18:55:19 +0200 |
parents | 6ebe899b6551 |
children | 42d2b31cee0b |
rev | line source |
---|---|
34296
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
1 create verbosemmap.py |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
2 $ cat << EOF > verbosemmap.py |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
3 > # extension to make util.mmapread verbose |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
4 > |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
5 > from __future__ import absolute_import |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
6 > |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
7 > from mercurial import ( |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
8 > extensions, |
35404
6ebe899b6551
py3: pass bytes from extension to ui.write() in test-revlog-mmapindex.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35393
diff
changeset
|
9 > pycompat, |
34296
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
10 > util, |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
11 > ) |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
12 > |
34446
b0c97e44576f
test-revlog-mmapindex: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
34296
diff
changeset
|
13 > def extsetup(ui): |
b0c97e44576f
test-revlog-mmapindex: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
34296
diff
changeset
|
14 > def mmapread(orig, fp): |
35404
6ebe899b6551
py3: pass bytes from extension to ui.write() in test-revlog-mmapindex.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35393
diff
changeset
|
15 > ui.write(b"mmapping %s\n" % pycompat.bytestr(fp.name)) |
34446
b0c97e44576f
test-revlog-mmapindex: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
34296
diff
changeset
|
16 > ui.flush() |
b0c97e44576f
test-revlog-mmapindex: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
34296
diff
changeset
|
17 > return orig(fp) |
34296
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
18 > |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
19 > extensions.wrapfunction(util, 'mmapread', mmapread) |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
20 > EOF |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
21 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
22 setting up base repo |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
23 $ hg init a |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
24 $ cd a |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
25 $ touch a |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
26 $ hg add a |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
27 $ hg commit -qm base |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
28 $ for i in `$TESTDIR/seq.py 1 100` ; do |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
29 > echo $i > a |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
30 > hg commit -qm $i |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
31 > done |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
32 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
33 set up verbosemmap extension |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
34 $ cat << EOF >> $HGRCPATH |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
35 > [extensions] |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
36 > verbosemmap=$TESTTMP/verbosemmap.py |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
37 > EOF |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
38 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
39 mmap index which is now more than 4k long |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
40 $ hg log -l 5 -T '{rev}\n' --config experimental.mmapindexthreshold=4k |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34446
diff
changeset
|
41 mmapping $TESTTMP/a/.hg/store/00changelog.i |
34296
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
42 100 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
43 99 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
44 98 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
45 97 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
46 96 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
47 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
48 do not mmap index which is still less than 32k |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
49 $ hg log -l 5 -T '{rev}\n' --config experimental.mmapindexthreshold=32k |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
50 100 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
51 99 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
52 98 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
53 97 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
54 96 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
55 |
3c9691728237
revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff
changeset
|
56 $ cd .. |