我正在爲R包開發一個函數,我需要在手動分配的內存中初始化R數值向量,而不是垃圾收集。如何將R對象放入手動分配的內存中?
標準函數allocVector(REALSXP,XXX)爲我分配內存並初始化對象。我已經分配了一塊內存,我需要在此內存中初始化R對象並將其返回給用戶空間。
算法我試圖按照
分配內存自己(其實這是一個內存映射文件)
把這個存儲A R對象(標準的R數字矢量)(如何? )
- 從試圖收集它(如何?)
註冊終結了
防止垃圾收集器這個對象
返回[R對象的用戶可以使用它
獲取該對象不再被引用的通知,並解除分配對象
然後我需要在R垃圾收集器中進行破解我的包不必是便攜的 - 它將在專用的R實例和硬件上運行 – user1987021
不需要便攜是相當這可能是一個非常糟糕的計劃,正如Dirk提到的,如果沒有一些奇特的黑客攻擊,你就無法做到你想要的東西,是否有可能,是的,有人會竭盡全力解釋它 - 可能不是,我問過,並坦率地希望我沒有看到它;-)爲了記錄,我是th也是R的mmap作者。祝你好運! –