为什么我的带有 jit 功能的模块需要很长时间才能导入?

Why does my module with jit functions take so long to import?

我创建了一个 python 模块,我将其导入 jupyter notebook 以供一般使用。我在模块中有一些 jit 函数,大约 20 个。导入模块最多可能需要一分钟,但如果我注释掉 @njit 装饰器,模块将立即导入。我想知道是否有 python 专家知道导入时的幕后情况。有什么办法可以缩短这么长的导入时间吗?

所以我发现删除函数的签名可以显着加快导入时间。但是,函数的第一次执行速度明显较慢。如果函数有签名,那么函数会在导入时编译,这是因为输入和return类型是已知的。如果没有签名,那么函数会在执行时编译,因为只有在此时编译器才知道输入和return类型。