3

R.cacheパッケージのようなものが存在するが、ハード ドライブではなく RAM で動作するものがあるのだろうか?

または、R.cacheパッケージにハードドライブを使用していると信じ込ませるために、 R.cacheパッケージにハッキングの可能性がありますが、キャッシュをRAMのある種の仮想ドライブに保存しますか?

私もこの素晴らしい質問を見つけてmemoiseパッケージを試しましたが、RAM 上では動作しますが、私の問題では R.cache よりも遅いことが判明しました。

4

2 に答える 2

5

おそらく、RAM ディスクを作成し、そのドライブをキャッシュの保存先として指定することができますR.cache

于 2012-09-29T23:37:27.547 に答える
1

カスタムキャッシュエンジンを備えたpanderevals関数を試してみることができます。

詳細については上記のリンクを参照してください。

  • キャッシュを有効にする:(evalsOptions('cache', TRUE)デフォルト値)
  • 最小値を設定できます。eval結果をキャッシュする秒単位の時間:(evalsOptions('cache.time', 0.1)デフォルト値)
  • キャッシュされた値とハッシュを格納する場所を指定します(disk対R environment):(evalsOptions('cache.mode', 'environment')デフォルト値)

簡単な例:

> library(pander)

> # first time run
> system.time(evals('sapply(rep(mtcars$hp, 1e3), mean)'))
   user  system elapsed 
 12.269   0.020  12.414 

> # second call
> system.time(evals('sapply(rep(mtcars$hp, 1e3), mean)'))
   user  system elapsed 
  0.003   0.000   0.003 

> # check results any time without recomputing those
> str(evals('sapply(rep(mtcars$hp, 1e3), mean)')[[1]]$result)
 num [1:32000] 110 110 93 110 175 105 245 62 95 123 ...
> str(evals('sapply(rep(mtcars$hp, 1e3), mean)'))
List of 1
 $ :List of 6
  ..$ src   : chr "sapply(rep(mtcars$hp, 1000), mean)"
  ..$ result: num [1:32000] 110 110 93 110 175 105 245 62 95 123 ...
  ..$ output: chr [1:1778] "    [1] 110 110  93 110 175 105 245  62  95 123 123 180 180 180 205 215 230  66" "   [19]  52  65  97 150 150 245 175  66  91 113 264 175 335 109 110 110  93 110" "   [37] 175 105 245  62  95 123 123 180 180 180 205 215 230  66  52  65  97 150" "   [55] 150 245 175  66  91 113 264 175 335 109 110 110  93 110 175 105 245  62" ...
  ..$ type  : chr "numeric"
  ..$ msg   :List of 3
  .. ..$ messages: NULL
  .. ..$ warnings: NULL
  .. ..$ errors  : NULL
  ..$ stdout: NULL
  ..- attr(*, "class")= chr "evals"
于 2012-10-01T08:00:27.347 に答える