I am trying to profile a nested function using cProfile.run
. I understand that perhaps cProfile
isn't running at the same scope as where I am calling it, but I'm not quite sure what the idiomatic way to achieve this is. Here's an MVCE:
def foo():
def bar():
# do something here
return 1
cProfile.run('bar()')
Gives the error:
NameError: name 'bar' is not defined
Use cProfile.runctx
:
def foo():
def bar():
# do something here
return 1
cProfile.runctx('bar()', None, locals=locals())