4

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 

2 Answers 2

3

Use cProfile.runctx:

def foo(): def bar(): # do something here return 1 cProfile.runctx('bar()', None, locals=locals()) 
Sign up to request clarification or add additional context in comments.

Comments

0

Using cProfile.run

def foo(): def bar(): # do something here return 1 cProfile.run(bar.__code__) 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.