2

最初にいくつかのライブラリをロードする必要がある R スクリプトを作成しました。

問題は、スクリプトが計算を完了するのに 1.6 秒かかり (Linux コマンド「time」で何度も測定)、ライブラリのロードに 0.7 秒しかかからないことです!

スクリプトは頻繁に実行されるため、ライブラリの読み込みの遅延は、実際のワークロードのほぼ 80% を占めています。

スクリプトが実行されるたびにライブラリが読み込まれないように、ライブラリをプリロードする方法はありますか?

この遅さを回避するための他の提案はありますか?

#!/usr/bin/Rscript

library(methods, quietly=TRUE, warn.conflicts = FALSE)
library(MASS, quietly=TRUE, warn.conflicts = FALSE)
library(RBGL, quietly=TRUE, warn.conflicts = FALSE)
library(igraph, quietly=TRUE, warn.conflicts = FALSE)
library(bnlearn, quietly=TRUE, warn.conflicts = FALSE)
library(gRbase, quietly=TRUE, warn.conflicts = FALSE)
library(gRain, quietly=TRUE, warn.conflicts = FALSE)
..
..
4

1 に答える 1

5

スクリプトをパッケージに変換すると (とにかく、長期的にはそうすべきです...)、使用Importsするパッケージから必要なシンボルだけを使用できます。これは通常、フルロードよりも少し高速です。によって行われDependsます。

だから鍵は

  1. パッケージを使用する
  2. について学ぶNAMESPACE
  3. import必要な記号だけ。

直交するアプローチは、再起動せずにその時間を節約することです --- Rserveを常駐 R インスタンスとして使用し、R クライアントで接続するだけです。仕事は増えるかもしれませんが…。

于 2012-03-30T02:20:34.000 に答える