当从多线程中使用 rpy2 调用 r 函数时,这更像是一个效率问题。
r 函数的任务基本上是从磁盘加载模型文件并使用模型对时间序列进行分类。然而,收集输入时间序列是使用 python 通过从数据库中轮询来完成的(将由一些 Web 服务更新)。一旦python代码检测到新的时间序列,它将创建一个工作进程,其中rpy2用于调用r函数来完成分类任务。
让 python 做分类任务不是我们的选择。我主要关心的是加载模型文件时的开销。显然,我不希望每次对新的时间序列进行分类时都读取一次文件。所以问题是——
如何只加载一次模型文件,并且当通过 rpy2 调用相同的 r 函数时可以重新使用内存中的模型对象?
我最初的意图是将模型文件加载到 python 中,并在每次调用 r 函数时将其作为参数传递。但这会引入复制模型参数的额外成本(比如大小不可忽略)。
您的帮助将不胜感激!