2013-03-10 2 views
5

Я должен многократно сериализовать (большие) объекты R. Чтобы избежать повторного сбора мусора из полученных исходных векторов (после профилирования выясняется, что половина времени выполнения моего скрипта расходуется на gc!) Я хотел бы попросить R напрямую записать в буфер памяти - всегда то же самое, так как после каждой сериализации я вызывал функцию C с .C, которая будет работать непосредственно в этом буфере памяти; это результат этой функции C, которая меня интересует.Подключение к памяти (R)

Возможно ли это? Насколько это необоснованно?

Заранее спасибо.

+0

Вы можете уменьшить активность GC, установив более высокий размер памяти init min с -min-nsize и -min-vsize. Но это не решит вашу проблему. Пожалуйста, проверьте свою ОС на наличие ограничений (Linux ulimit). – tfb785

ответ

1

Возможно, я не понял вашу проблему, но почему бы вам не использовать свой R-объект в коде C++ с помощью Rcpp. Копии не будет, и вам не нужна сериализация.

+0

В то время, когда я задал вопрос, я не использовал Rcpp, поэтому я не очень удовлетворил ваш ответ. Теперь, когда я использую Rcpp, я вижу, что ваше предложение является наилучшим. Поэтому я отмечаю его как принято! К любому будущему читателю: ** УЗНАЙТЕ RCPP! ** – Elvis

Смежные вопросы