2013-03-10 11 views
5

Rのオブジェクトを(大)繰り返してシリアライズする必要があります。生成された生ベクターの繰り返しのガベージコレクションを回避するために(プロファイリング後、スクリプト実行時間の半分がgcに費やされていることが判明しました!)私はRに直接メモリバッファに書き込むよう依頼したい - 各シリアライゼーションの後、私は.CというC関数を呼び出して、このメモリバッファで直接動作します。それは私に興味を持っているこのC関数の結果です。メモリへの接続

これは可能ですか?それはどれくらい不合理ですか?

ありがとうございます。

+0

--min-nsizeと--min-vsizeを使用して、より高い初期化メモリサイズを設定することで、GCアクティビティを減らすことができます。しかし、これはあなたの問題を解決しません。ご使用のOSの制限を確認してください(Linux ulimit)。 – tfb785

答えて

1

私はあなたの問題を理解していないかもしれませんが、Rcppを使ってC++コードでRオブジェクトを直接使用しないのはなぜですか?コピーはありません。シリアル化は必要ありません。

+0

私は質問をした時点で、私はRcppを使用していなかったので、私はあなたの答えではあまり満足できませんでした。 Rcppを使用するようになった今、私はあなたの提案が可能であることを見ています。だから私は受け入れられたようにそれをタグ付けする! 将来の読者に:** LEARN RCPP!** – Elvis