##// 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:

r28065:6b1fc09c default
r29787:80df0426 default
Show More
test-merge5.t
36 lines | 837 B | text/troff | Tads3Lexer
Pradeepkumar Gayam
tests: unify test-merge5
r11978 $ hg init
$ echo This is file a1 > a
$ echo This is file b1 > b
$ hg add a b
Martin Geisler
test-merge5: removed unnecessary parts of test...
r12155 $ hg commit -m "commit #0"
Pradeepkumar Gayam
tests: unify test-merge5
r11978 $ echo This is file b22 > b
Martin Geisler
test-merge5: removed unnecessary parts of test...
r12155 $ hg commit -m "comment #1"
Pradeepkumar Gayam
tests: unify test-merge5
r11978 $ hg update 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm b
Martin Geisler
test-merge5: removed unnecessary parts of test...
r12155 $ hg commit -A -m "comment #2"
Pradeepkumar Gayam
tests: unify test-merge5
r11978 removing b
created new head
Brodie Rao
test-merge5: ensure updating to tip across branches is tested...
r12154 $ hg update 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
update: check for missing files with --check (issue3595)
r17849 $ rm b
Pierre-Yves David
update: change default destination to tipmost descendant (issue4673) (BC)...
r28065 $ hg update -c 2
Siddharth Agarwal
update: standardize error message for dirty update --check...
r19801 abort: uncommitted changes
Matt Mackall
update: check for missing files with --check (issue3595)
r17849 [255]
$ hg revert b
Pierre-Yves David
update: change default destination to tipmost descendant (issue4673) (BC)...
r28065 $ hg update -c 2
Brodie Rao
test-merge5: ensure updating to tip across branches is tested...
r12154 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Pradeepkumar Gayam
tests: unify test-merge5
r11978 $ mv a c
Martin Geisler
test-merge5: removed unnecessary parts of test...
r12155 Should abort:
Martin von Zweigbergk
test-merge5: remove obsolete '-y' and its motivating comment...
r23026 $ hg update 1
Siddharth Agarwal
update: add error message for dirty non-linear update with no rev...
r19799 abort: uncommitted changes
(commit or update --clean to discard changes)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Pradeepkumar Gayam
tests: unify test-merge5
r11978 $ mv c a
Martin Geisler
test-merge5: removed unnecessary parts of test...
r12155
Should succeed:
Martin von Zweigbergk
test-merge5: remove obsolete '-y' and its motivating comment...
r23026 $ hg update 1
Pradeepkumar Gayam
tests: unify test-merge5
r11978 1 files updated, 0 files merged, 0 files removed, 0 files unresolved