如何在 Python 或 IPython 中仅分析我的代码?
How can I profile only my code in Python or IPython?
我熟悉 IPython 中使用 Python profile
模块的 %prun
魔术命令。但是,我只想分析我的代码。也就是说,我想看看我的 Python 代码中哪些行最慢,而不是隐藏在我正在使用的某些外部包中的那些行,它们经常被调用,因此看起来花费的时间最多。我该怎么做?
根据更多的谷歌搜索,答案似乎是 line_profiler
:https://github.com/rkern/line_profiler
import line_profiler
%load_ext line_profiler
然后
%lprun -f function_i_want_to_profile function_i_want_to_run()
虽然 line_profiler
有效,但它增加了很多开销,您需要将 @profile
放在各处。
您可以用各种方式对 %prun
的输出进行排序。其中之一是模块名称:
%prun -s module my_func()
因此相应地选择您的文件名,例如以下划线开头,会将您的文件放在列表的开头 %prun
显示。
我熟悉 IPython 中使用 Python profile
模块的 %prun
魔术命令。但是,我只想分析我的代码。也就是说,我想看看我的 Python 代码中哪些行最慢,而不是隐藏在我正在使用的某些外部包中的那些行,它们经常被调用,因此看起来花费的时间最多。我该怎么做?
根据更多的谷歌搜索,答案似乎是 line_profiler
:https://github.com/rkern/line_profiler
import line_profiler
%load_ext line_profiler
然后
%lprun -f function_i_want_to_profile function_i_want_to_run()
虽然 line_profiler
有效,但它增加了很多开销,您需要将 @profile
放在各处。
您可以用各种方式对 %prun
的输出进行排序。其中之一是模块名称:
%prun -s module my_func()
因此相应地选择您的文件名,例如以下划线开头,会将您的文件放在列表的开头 %prun
显示。