##// END OF EJS Templates
hgweb: profile HTTP requests...
hgweb: profile HTTP requests Currently, running `hg serve --profile` doesn't yield anything useful: when the process is terminated the profiling output displays results from the main thread, which typically spends most of its time in select.select(). Furthermore, it has no meaningful results from mercurial.* modules because the threads serving HTTP requests don't actually get profiled. This patch teaches the hgweb wsgi applications to profile individual requests. If profiling is enabled, the profiler kicks in after HTTP/WSGI environment processing but before Mercurial's main request processing. The profile results are printed to the configured profiling output. If running `hg serve` from a shell, they will be printed to stderr, just before the HTTP request line is logged. If profiling to a file, we only write a single profile to the file because the file is not opened in append mode. We could add support for appending to files in a future patch if someone wants it. Per request profiling doesn't work with the statprof profiler because internally that profiler collects samples from the thread that *initially* requested profiling be enabled. I have plans to address this by vendoring Facebook's customized statprof and then improving it.

File last commit:

r17132:b87acfda default
r29787:80df0426 default
Show More
test-excessive-merge.t
101 lines | 3.0 KiB | text/troff | Tads3Lexer
/ tests / test-excessive-merge.t
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 $ hg init
$ echo foo > a
$ echo foo > b
$ hg add a b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m "test"
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974
$ echo blah > a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m "branch a"
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974
$ hg co 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo blah > b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m "branch b"
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 created new head
$ HGMERGE=true hg merge 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m "merge b/a -> blah"
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974
$ hg co 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ HGMERGE=true hg merge 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m "merge a/b -> blah"
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 created new head
$ hg log
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 4:2ee31f665a86
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 tag: tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 parent: 1:96155394af80
parent: 2:92cc4c306b19
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 summary: merge a/b -> blah
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 3:e16a66a37edd
parent: 2:92cc4c306b19
parent: 1:96155394af80
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 summary: merge b/a -> blah
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 2:92cc4c306b19
parent: 0:5e0375449e74
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 summary: branch b
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:96155394af80
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 summary: branch a
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:5e0375449e74
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974 summary: test
Sune Foldager
debugindex etc.: add --changelog and --manifest options...
r14323 $ hg debugindex --changelog
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 60 ..... 0 5e0375449e74 000000000000 000000000000 (re)
1 60 62 ..... 1 96155394af80 5e0375449e74 000000000000 (re)
2 122 62 ..... 2 92cc4c306b19 5e0375449e74 000000000000 (re)
3 184 69 ..... 3 e16a66a37edd 92cc4c306b19 96155394af80 (re)
4 253 29 ..... 4 2ee31f665a86 96155394af80 92cc4c306b19 (re)
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974
revision 1
$ hg manifest --debug 1
79d7492df40aa0fa093ec4209be78043c181f094 644 a
2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 b
revision 2
$ hg manifest --debug 2
2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 a
79d7492df40aa0fa093ec4209be78043c181f094 644 b
revision 3
$ hg manifest --debug 3
79d7492df40aa0fa093ec4209be78043c181f094 644 a
79d7492df40aa0fa093ec4209be78043c181f094 644 b
revision 4
$ hg manifest --debug 4
79d7492df40aa0fa093ec4209be78043c181f094 644 a
79d7492df40aa0fa093ec4209be78043c181f094 644 b
Sune Foldager
tests: fix deprecated use of hg debugdata/debugindex...
r14182 $ hg debugindex a
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re)
1 5 6 ..... 1 79d7492df40a 2ed2a3912a0b 000000000000 (re)
Pradeepkumar Gayam
tests: unify test-excessive-merge
r11974
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 5 changesets, 4 total revisions