Select Git revision
- Branches 20
- topic/default/rust.index-proxy.direct
- topic/default/rust-upgrade-versions
- topic/default/rust-innerrevlog-followup
- topic/stable/debug-upload
- branch/default default protected
- branch/stable protected
- topic/default/no-madvise
- topic/default/generalize-matchers
- topic/default/annotate-wdir
- topic/stable/rust-dirstate-changelog-race
- topic/default/root-share
- topic/default/fastexport-subrepos
- topic/stable/fastexport_on_empty_repo
- topic/stable/hooklib-handle-node-none
- topic/stable/fastexport-symlinks
- topic/default/annotate-follow
- topic/default/pdm
- topic/default/narrow-clonebundles
- topic/default/profiling-output-dir
- topic/stable/arg-check-string-types
- Tags 291
- 0.4c
- 0.4d
- 0.4e
- 0.4f
- 0.5
- 0.5b
- 0.6
- 0.6b
- 0.6c
- 0.7
- 0.8
- 0.8.1
- 0.9
- 0.9.1
- 0.9.2
- 0.9.3
- 0.9.4
- 0.9.5
- 1.0
- 1.0.1
- 1.0.2
- 1.1
- 1.1.1
- 1.1.2
- 1.2
- 1.2.1
- 1.3
- 1.3.1
- 1.4
- 1.4.1
- 1.4.2
- 1.4.3
- 1.5
- 1.5.1
- 1.5.2
- 1.5.3
- 1.5.4
- 1.6
- 1.6.1
- 1.6.2
- 1.6.3
- 1.6.4
- 1.7
- 1.7.1
- 1.7.2
- 1.7.3
- 1.7.4
- 1.7.5
- 1.8
- 1.8.1
- 1.8.2
- 1.8.3
- 1.8.4
- 1.9
- 1.9.1
- 1.9.2
- 1.9.3
- 2.0
- 2.0-rc
- 2.0.1
- 2.0.2
- 2.1
- 2.1-rc
- 2.1.1
- 2.1.2
- 2.2
- 2.2-rc
- 2.2.1
- 2.2.2
- 2.2.3
- 2.3
- 2.3-rc
- 2.3.1
- 2.3.2
- 2.4
- 2.4-rc
- 2.4.1
- 2.4.2
- 2.5
- 2.5-rc
- 2.5.1
- 2.5.2
- 2.5.3
- 2.5.4
- 2.6
- 2.6-rc
- 2.6.1
- 2.6.2
- 2.6.3
- 2.7
- 2.7-rc
- 2.7.1
- 2.7.2
- 2.8
- 2.8-rc
- 2.8.1
- 2.8.2
- 2.9
- 2.9-rc
- 2.9.1
- 2.9.2
- 3.0
- 3.0-rc
- 3.0.1
- 3.0.2
- 3.1
- 3.1-rc
- 3.1.1
- 3.1.2
- 3.2
- 3.2-rc
- 3.2.1
- 3.2.2
- 3.2.3
- 3.2.4
- 3.3
- 3.3-rc
- 3.3.1
- 3.3.2
- 3.3.3
- 3.4
- 3.4-rc
- 3.4.1
- 3.4.2
- 3.5
- 3.5-rc
- 3.5.1
- 3.5.2
- 3.6
- 3.6-rc
- 3.6.1
- 3.6.2
- 3.6.3
- 3.7
- 3.7-rc
- 3.7.1
- 3.7.2
- 3.7.3
- 3.8
- 3.8-rc
- 3.8.1
- 3.8.2
- 3.8.3
- 3.8.4
- 3.9
- 3.9-rc
- 3.9.1
- 3.9.2
- 4.0
- 4.0-rc
- 4.0.1
- 4.0.2
- 4.1
- 4.1-rc
- 4.1.1
- 4.1.2
- 4.1.3
- 4.2
- 4.2-rc
- 4.2.1
- 4.2.2
- 4.2.3
- 4.3
- 4.3-rc
- 4.3.1
- 4.3.2
- 4.3.3
- 4.4
- 4.4-rc
- 4.4.1
- 4.4.2
- 4.5
- 4.5-rc
- 4.5.1
- 4.5.2
- 4.5.3
- 4.6
- 4.6.1
- 4.6.2
- 4.6rc0
- 4.6rc1
- 4.7
- 4.7.1
- 4.7.2
- 4.7rc0
- 4.8
- 4.8.1
- 4.8.2
- 4.8rc0
- 4.9
- 4.9.1
- 4.9rc0
- 5.0
- 5.0.1
- 5.0.2
- 5.0rc0
- 5.1
- 5.1.1
- 5.1.2
- 5.1rc0
- 5.2
- 5.2.1
- 5.2.2
- 5.2rc0
- 5.3
- 5.3.1
- 5.3.2
- 5.3rc0
- 5.3rc1
- 5.4
- 5.4.1
- 5.4.2
- 5.4rc0
- 5.5
- 5.5.1
- 5.5.2
- 5.5rc0
- 5.6
- 5.6.1
- 5.6rc0
- 5.7
- 5.7.1
- 5.7rc0
- 5.8
- 5.8.1
- 5.8rc0
- 5.8rc1
- 5.9
- 5.9.1
- 5.9.2
- 5.9.3
- 5.9rc0
- 5.9rc1
- 6.0
- 6.0.1
- 6.0.2
- 6.0.3
- 6.0rc0
- 6.1
- 6.1.1
- 6.1.2
- 6.1.3
- 6.1.4
- 6.1rc0
- 6.2
- 6.2.1
- 6.2.2
- 6.2.3
- 6.2rc0
- 6.3
- 6.3.1
- 6.3.2
- 6.3.3
- 6.3rc0
- 6.4
- 6.4.1
- 6.4.2
- 6.4.3
- 6.4.4
- 6.4.5
- 6.4rc0
- 6.5
- 6.5.1
- 6.5.2
- 6.5.3
- 6.5rc0
- 6.6
- 6.6.1
- 6.6.2
- 6.6.3
- 6.6rc0
- 6.7
- 6.7.1
- 6.7.2
- 6.7.3
- 6.7.4
- 6.7rc0
- 6.8
- 6.8.1
- 6.8.2
- 6.8rc0
- 6.9
- 6.9.1
- 6.9.2
- 6.9.3
- 6.9.4
- 6.9rc0
- 6.9rc1
- 7.0
- 7.0rc0
- 7.0rc1
Compare
-
-
- Open in your IDE
- Download source code
Pierre-Yves David
authored
File matching is done by applying the matcher to all elements in the 'file' field of all changesets in the repository. This requires to read/parse all changesets in the repository and do a lot of matching. However about 1/3 of the time of the function is used to create 'changectx' object and retrieve their 'file' field. This is far too much overhead so we are skipping the changectx layer and directly access the data from the changelog. This provide use significant speed up: repository: mozilla central 252524 revisions command: hg perfrevset '_matchfiles("p:browser")' Before: 15.899687s After: 10.011705s Slowdown is even more significant if you have a lot of namespace that slowdown lookup. The time is now spent with this approximate repartition: Matcher: 20% regexp matching: 10% changelog.read: 80% reading revision: 60% checking hash: 15% decompression: 15% reading chunk: 30% changelog parsing: 20% decoding to local: 10% The next easy win is probably to have more of the changelog stack implemented using the CPython api.
f92053df
History
Name | Last commit | Last update |
---|---|---|