これは、マルチスレッドから rpy2 を使用して r 関数を呼び出す場合の効率の問題です。
r 関数のタスクは、基本的にモデル ファイルをディスクから読み込み、そのモデルを使用して時系列を分類します。ただし、入力時系列の収集は、Python を使用してデータベースからポーリングすることによって行われます (一部の Web サービスによって更新されます)。Python コードが新しい時系列を検出すると、rpy2 を使用して r 関数を呼び出して分類タスクを実行するワーカー プロセスが作成されます。
Python に分類タスクを実行させることは、私たちにとってオプションではありません。私の主な懸念は、モデル ファイルをロードするときのオーバーヘッドです。明らかに、新しい時系列が分類されるたびにファイルが一度読み取られることは望ましくありません。だから質問は -
モデル ファイルを 1 回だけ読み込むにはどうすればよいですか? 同じ r 関数が rpy2 を介して呼び出されたときに、メモリ内のモデル オブジェクトを再利用できますか?
私の最初の意図は、モデル ファイルを python にロードし、r 関数が呼び出されるたびにパラメーターとして渡すことです。ただし、これにより、モデル パラメーターをコピーするための余分なコストが発生します (サイズが無視できないとします)。
あなたの助けは非常に高く評価されます!