statsforecast 大量使用 numba 来加速一些估计模型参数的关键函数。但这带来了一定的代价,即这些函数在首次运行时需要进行 JIT 编译,这可能会耗费时间。一旦函数被 JIT 编译,后续调用就会显著加快。一个问题是,这种编译(默认情况下)是按会话保存的。

为了减轻编译开销,numba 提供了将编译后的函数代码缓存到文件的选项,这样就可以在不同会话中重复使用,甚至可以复制到 CPU 特性相同的不同机器上(更多信息)。

为了利用缓存,你可以设置 NIXTLA_NUMBA_CACHE 环境变量(例如 NIXTLA_NUMBA_CACHE=1),这将为所有函数启用缓存。默认情况下,缓存保存到 __pycache__ 目录,但你可以通过 NUMBA_CACHE_DIR 环境变量将其更改为不同的路径(例如 NUMBA_CACHE_DIR=numba_cache),你可以在文档中找到更多信息。

如果你希望在所有会话中都启用此功能,建议将 export NIXTLA_NUMBA_CACHE=1 添加到你的配置文件中,例如 .bashrc.zshrc 等。