无法将 line_profiler 与 Cython 一起使用
Cannot use line_profiler with Cython
基于 I was trying to use the line_profiler 的答案,使用 cythonized 函数。
关于上述问题,接受的答案给了我们一个关于如何在 jupyter notebook 上使用它的例子。
但是,当我尝试使用 disutils 构建 pyx
文件时,它不起作用。
我们尝试 运行 脚本使用
kernprof -l -v script.py
它只 returns Timer unit
经过时间。
如果我尝试使用 @profile
修饰 cython 文件上的函数,它不会编译返回:
undeclared name not builtin: profile
有什么想法吗?
profile
装饰器由 kernprof
注入到 globals
命名空间中,因此在编译时不可用。但是,您可以 。例如,在您的 script.py
中,您可以编写以下内容。
from cython_module import function_to_be_profiled
# Apply the `profile` decorator
function_to_be_profiled = profile(function_to_be_profiled)
# Use function_to_be_profiled as intended
如果您 运行 使用标准 python 的脚本,即 python script.py
,代码段的第三行将失败,因为未定义 profile
装饰器。但如果您使用 kernprof
.
运行 它应该会按预期运行
基于
关于上述问题,接受的答案给了我们一个关于如何在 jupyter notebook 上使用它的例子。
但是,当我尝试使用 disutils 构建 pyx
文件时,它不起作用。
我们尝试 运行 脚本使用
kernprof -l -v script.py
它只 returns Timer unit
经过时间。
如果我尝试使用 @profile
修饰 cython 文件上的函数,它不会编译返回:
undeclared name not builtin: profile
有什么想法吗?
profile
装饰器由 kernprof
注入到 globals
命名空间中,因此在编译时不可用。但是,您可以 script.py
中,您可以编写以下内容。
from cython_module import function_to_be_profiled
# Apply the `profile` decorator
function_to_be_profiled = profile(function_to_be_profiled)
# Use function_to_be_profiled as intended
如果您 运行 使用标准 python 的脚本,即 python script.py
,代码段的第三行将失败,因为未定义 profile
装饰器。但如果您使用 kernprof
.