Я профилирую Python функцию foo()
, которая принимает один аргумент, но этот аргумент имеет огромное значение в том, что на самом деле делает функция.
В настоящее время я использую cProfile
, который записывает каждый вызов foo()
, как если бы он был одним и тем же, не давая мне понять, что происходит.
Есть ли способ получить cProfile
или любой другой профилировщик Python, чтобы сохранить аргументы вызова функции, поэтому, когда я смотрю на стек вызовов позже (особенно с использованием визуализатора, такого как SnakeViz), я могу различить guish между foo('bar')
и foo('qux')
?
PS возможно, это проблема разработки кода: поскольку foo('bar')
и foo('qux')
делают очень разные вещи, они должны быть четко названными отдельными функциями, такими как foo_bar()
и foo_qux()
. Однако вопрос в том, могу ли я профилировать их как есть, без рефакторинга.