##// END OF EJS Templates
worker: ability to disable thread unsafe tasks...
worker: ability to disable thread unsafe tasks The worker on Windows is implemented using a thread pool. If worker tasks are not thread safe, badness can occur. In addition, if tasks are executing CPU bound code and holding onto the GIL, there will be non-substantial overhead in Python context switching between active threads. This can result in significant slowdowns of tasks. This commit teaches the code for determining whether to use a worker to take thread safety into account. Effectively, thread unsafe tasks don't use the thread-based worker on Windows. Differential Revision: https://phab.mercurial-scm.org/D3962

File last commit:

r30406:cff0f592 default
r38754:ef3838a4 default
Show More
perf.py
26 lines | 649 B | text/x-python | PythonLexer
# perf.py - asv benchmarks using contrib/perf.py extension
#
# Copyright 2016 Logilab SA <contact@logilab.fr>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from . import perfbench
@perfbench()
def track_tags(perf):
return perf("perftags")
@perfbench()
def track_status(perf):
return perf("perfstatus", unknown=False)
@perfbench(params=[('rev', ['1000', '10000', 'tip'])])
def track_manifest(perf, rev):
return perf("perfmanifest", rev)
@perfbench()
def track_heads(perf):
return perf("perfheads")