本文整理汇总了Python中sys.getprofile函数的典型用法代码示例。如果您正苦于以下问题:Python getprofile函数的具体用法?Python getprofile怎么用?Python getprofile使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了getprofile函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_setprofile
def test_setprofile():
profiler = TracingProfiler()
assert sys.getprofile() is None
with profiler:
assert sys.getprofile() == profiler._profile
assert sys.getprofile() is None
sys.setprofile(lambda *x: x)
with pytest.raises(RuntimeError):
profiler.start()
sys.setprofile(None)
开发者ID:sublee,项目名称:profiling,代码行数:10,代码来源:test_tracing.py
示例2: test_profile_enable_disable
def test_profile_enable_disable(self):
prof = self.profilerclass()
# Make sure we clean ourselves up if the test fails for some reason.
self.addCleanup(prof.disable)
prof.enable()
self.assertIs(sys.getprofile(), prof)
prof.disable()
self.assertIs(sys.getprofile(), None)
开发者ID:Eyepea,项目名称:cpython,代码行数:10,代码来源:test_cprofile.py
示例3: test_error_when_set_multiple
def test_error_when_set_multiple(self):
self.monitor._profile.replace(self.bar)
self.assertIs(sys.getprofile(), self.bar)
self.monitor._profile.replace(self.bar)
self.assertIs(sys.getprofile(), self.bar)
self.monitor._profile.recover()
self.monitor._profile.replace(self.bar)
self.assertIs(sys.getprofile(), self.bar)
with self.assertRaises(RuntimeError):
self.monitor._profile.replace(None)
self.assertIs(sys.getprofile(), self.bar)
self.monitor._profile.recover()
开发者ID:enthought,项目名称:pikos,代码行数:13,代码来源:test_profile_functions_manager.py
示例4: test_profile_as_context_manager
def test_profile_as_context_manager(self):
prof = self.profilerclass()
# Make sure we clean ourselves up if the test fails for some reason.
self.addCleanup(prof.disable)
with prof as __enter__return_value:
# profile.__enter__ should return itself.
self.assertIs(prof, __enter__return_value)
# profile should be set as the global profiler inside the
# with-block
self.assertIs(sys.getprofile(), prof)
# profile shouldn't be set once we leave the with-block.
self.assertIs(sys.getprofile(), None)
开发者ID:Eyepea,项目名称:cpython,代码行数:15,代码来源:test_cprofile.py
示例5: get_info_on_next_invocation
def get_info_on_next_invocation(self, func, callback, needed):
"""
func is a tuple (filename, funcname)
needed is a list/tuple of NeededInfo objects
"""
if isinstance(needed, NeededInfo):
needed = (needed,)
request = WatchRequest(needed, {}, callback)
if func in self.watching_funcs:
self.watching_funcs[func].requests.append(request)
else:
self.watching_funcs[func] = FuncWatchStatus(func, requests=[request])
fws = self.watching_funcs[func]
for ni in needed:
hsh = 0
for i in range(ni.stmt_idx+1):
hsh += hash(ni.stmt_sequence[i])
#cprint ("adding to hash %s: %i"%(str(ni.stmt_sequence[i]), hsh), 'green')
if hsh in fws.ni_hashmap:
fws.ni_hashmap[hsh].append((request,ni))
else:
fws.ni_hashmap[hsh] = [(request,ni)]
cprint("finishing up get_info_on_next_invocation", 'red')
# XXX Why do I need to use both settrace and setprofile? settrace doesn't
# XXX trigger on return events, and setprofile doesn't trigger on line events...
self.old_trace, self.old_profile = sys.gettrace(), sys.getprofile()
sys.settrace(self.trace_cb)
sys.setprofile(self.profile_cb)
开发者ID:RichardWarfield,项目名称:heimdall,代码行数:33,代码来源:watcher.py
示例6: __init__
def __init__(self, metascript):
# Indicates when activations should be collected
# (only after the first call to the script)
self.enabled = False
# User files
self.script = metascript.path
self.paths = metascript.paths
# Which function types ('main', 'package' or 'all')
# should be considered for the threshold
self.context = metascript.context
# How deep we want to go when capturing function activations?
self.depth_threshold = metascript.depth
# How deep we want to go beyond our context
self.non_user_depth_threshold = metascript.non_user_depth
# Object serializer function
self.serialize = metascript.serialize
self.metascript = metascript
self.trial_id = metascript.trial_id
self.event_map = defaultdict(lambda: self.trace_empty, {})
self.default_profile = sys.getprofile()
self.default_trace = sys.gettrace()
self.argument_captor = ArgumentCaptor(self)
开发者ID:LEONOB2014,项目名称:noworkflow,代码行数:25,代码来源:base.py
示例7: start
def start(self):
if sys.getprofile() is not None:
raise RuntimeError('Another profiler already registered.')
self._running = True
sys.setprofile(self._profile)
threading.setprofile(self._profile)
self.timer.start()
self.stats.record_starting(time.clock())
开发者ID:GaZ3ll3,项目名称:profiling,代码行数:8,代码来源:profiler.py
示例8: task
def task(self, expected_trace_function=None, expected_profile_function=None):
# this task tests that the trace/profile function has the
# expected value
tasklet = stackless.current
self.assertIs(sys.gettrace(), expected_trace_function)
self.assertIs(tasklet.trace_function, expected_trace_function)
self.assertIs(sys.getprofile(), expected_profile_function)
self.assertIs(tasklet.profile_function, expected_profile_function)
开发者ID:dev-alex-alex2006hw,项目名称:tools,代码行数:8,代码来源:test_tracing.py
示例9: setUp
def setUp(self):
if sys.gettrace() or sys.getprofile():
self.skipTest("Trace or profile function already active")
self.addCleanup(sys.settrace, None)
self.addCleanup(stackless.set_schedule_callback, None)
self.schedule_callback_exc = []
self.unexpected_trace_events = []
self.m = mutex()
开发者ID:dev-alex-alex2006hw,项目名称:tools,代码行数:8,代码来源:test_tracing.py
示例10: replace
def replace(self, function):
""" Set a new function in sys.setprofile.
If the function has been already set and it is not the same as before
then RuntimeError is raised.
"""
if hasattr(self, 'previous'):
if function != sys.getprofile():
raise RuntimeError(
'Cannot replace profile function more than once')
return
else:
self.previous = sys.getprofile()
if has_threading:
threading.setprofile(function)
sys.setprofile(function)
开发者ID:enthought,项目名称:pikos,代码行数:17,代码来源:profile_function_manager.py
示例11: trace_execution
def trace_execution(fn, args, save_to=None):
import inspect
if save_to:
os.environ["INTEL_SEA_SAVE_TO"] = save_to
itt = ITT("python")
if itt.lib:
file_id = itt.get_string_id("__FILE__")
line_id = itt.get_string_id("__LINE__")
module_id = itt.get_string_id("__MODULE__")
trace_execution.frames = {}
trace_execution.recurrent = False
high_part = 2 ** 32
def profiler(frame, event, arg): # https://pymotw.com/2/sys/tracing.html
if trace_execution.recurrent:
return
trace_execution.recurrent = True
task_id = id(frame.f_code)
if "call" in event:
if task_id in trace_execution.frames:
trace_execution.frames[task_id] += 1
else:
trace_execution.frames[task_id] = 1
task_id += trace_execution.frames[task_id] * high_part
name = frame.f_code.co_name + ((" (%s)" % arg.__name__) if arg else "")
if "self" in frame.f_locals:
cls = frame.f_locals["self"].__class__.__name__
name = cls + "." + name
# print event, name, task_id, arg
mdl = inspect.getmodule(frame)
itt.lib.itt_task_begin_overlapped(itt.domain, task_id, 0, itt.get_string_id(name), 0)
itt.lib.itt_metadata_add_str(itt.domain, task_id, file_id, frame.f_code.co_filename)
itt.lib.itt_metadata_add(itt.domain, task_id, line_id, frame.f_code.co_firstlineno)
if mdl:
itt.lib.itt_metadata_add_str(itt.domain, task_id, module_id, mdl.__name__)
elif "return" in event:
# print event, frame.f_code.co_name, task_id + trace_execution.frames[task_id] * high_part
if task_id in trace_execution.frames:
itt.lib.itt_task_end_overlapped(
itt.domain, 0, task_id + trace_execution.frames[task_id] * high_part
)
if trace_execution.frames[task_id] > 1:
trace_execution.frames[task_id] -= 1
else:
del trace_execution.frames[task_id]
trace_execution.recurrent = False
print trace_execution.frames
old_profiler = sys.getprofile()
sys.setprofile(profiler)
old_threading_profiler = threading.setprofile(profiler)
fn(*args)
sys.setprofile(old_profiler)
threading.setprofile(old_threading_profiler)
else:
fn(*args)
开发者ID:01org,项目名称:IntelSEAPI,代码行数:58,代码来源:sea.py
示例12: task2
def task2(self, expected_trace_function=None, expected_profile_function=None):
# task switches tasklets and then tests that the trace/profile function has the
# expected value
stackless.schedule()
tasklet = stackless.current
self.assertIs(sys.gettrace(), expected_trace_function)
self.assertIs(tasklet.trace_function, expected_trace_function)
self.assertIs(sys.getprofile(), expected_profile_function)
self.assertIs(tasklet.profile_function, expected_profile_function)
开发者ID:dev-alex-alex2006hw,项目名称:tools,代码行数:9,代码来源:test_tracing.py
示例13: main
def main():
i = 1500
orig_profile = sys.getprofile()
sys.setprofile(profile)
try:
while i > 0:
i = sub(i, 1)
finally:
sys.setprofile(orig_profile)
开发者ID:alex,项目名称:tracebin,代码行数:9,代码来源:test_hook.py
示例14: testSetTraceOnCurrent
def testSetTraceOnCurrent(self):
tf = self.nullTraceFunc
tasklet = stackless.current
self.assertIsNone(sys.gettrace())
self.assertIsNone(sys.getprofile())
self.assertIsNone(tasklet.trace_function)
self.assertIsNone(tasklet.profile_function)
tasklet.trace_function = tf
self.assertIs(sys.gettrace(), tf)
self.assertIsNone(sys.getprofile())
self.assertIs(tasklet.trace_function, tf)
self.assertIsNone(tasklet.profile_function)
tasklet.trace_function = None
self.assertIsNone(sys.gettrace())
self.assertIsNone(sys.getprofile())
self.assertIsNone(tasklet.trace_function)
self.assertIsNone(tasklet.profile_function)
self.assertGreater(self.tracecount, 0)
开发者ID:dev-alex-alex2006hw,项目名称:tools,代码行数:18,代码来源:test_tracing.py
示例15: uninstall
def uninstall(self):
"""
Deactivate this tracer.
If another profile hook was installed after this tracer was installed,
nothing will happen. If a different profile hook was installed prior to
calling ``install()``, it will be restored.
"""
if sys.getprofile() == self._trace:
sys.setprofile(self._wrapped_profiler)
开发者ID:caseymacphee,项目名称:twisted-theseus,代码行数:10,代码来源:_tracer.py
示例16: start
def start():
"""
Turn on memory profiling.
"""
global _trace_memory
if sys.getprofile() is not None:
raise RuntimeError("another profile function is already active.")
if _trace_memory is None:
raise RuntimeError("trace.setup() was not called before trace.start().")
sys.setprofile(_trace_memory)
开发者ID:samtx,项目名称:OpenMDAO,代码行数:10,代码来源:iprof_mem.py
示例17: setUp
def setUp(self):
self.old = sys.getprofile()
def foo():
pass
def bar(frame, event, arg):
pass
self.foo = foo
self.bar = bar
self.monitor = MockNativeMonitor()
开发者ID:enthought,项目名称:pikos,代码行数:11,代码来源:test_profile_functions_manager.py
示例18: collect_events
def collect_events(func):
events = []
def tracer(frame, event, args):
events.append((frame.f_code, event))
old_tracer = sys.getprofile()
sys.setprofile(tracer)
try:
func()
finally:
sys.setprofile(old_tracer)
return events
开发者ID:Lehych,项目名称:iktomi,代码行数:11,代码来源:functools.py
示例19: add
def add(self, gl):
if id(gl) not in self.gl:
# don't know about this module / globals yet
if not self.gl:
# install the profiler / cleanup handler, but keep the old one
self.op = sys.getprofile()
sys.setprofile(self)
# keep the reference for later
self.gl[id(gl)] = gl
开发者ID:josiahcarlson,项目名称:mprop,代码行数:11,代码来源:mprop.py
示例20: test_execute_and_capture_locals
def test_execute_and_capture_locals():
def func():
a=3
return a+4
def outer_func():
b=4
def nested():
return func()+b+5
return nested
out, local_vars = execute_and_capture_locals(func)
assert out == 3+4
assert local_vars == {'a': 3}
assert sys.getprofile() is None
out, local_vars = execute_and_capture_locals(outer_func())
assert out == 7+4+5
assert local_vars == {'b': 4, 'func': func}
assert sys.getprofile() is None
开发者ID:qyx268,项目名称:plato,代码行数:21,代码来源:test_local_capture.py
注:本文中的sys.getprofile函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论