我已經看了這個答案的高和低,所以我訴諸張貼在這裏。如果我有一個Linux C++程序調用一個類似於RCpp的R腳本/函數,是否有任何明顯的延遲期望?這會預期甚至合理嗎?如果我從Java JAR文件中使用類似RCaller的東西會怎麼樣?如果它調用相同的R腳本/函數,你認爲C++比Java更快嗎?任何預期的差異? 謝謝C++或Java調用R腳本的RCPP或RCaller的基準測試?
2
A
回答
1
1
我對R的外部函數接口或RCpp沒有特別的瞭解,但已經與其他很多人合作過了。你的問題不能被肯定地回答。只有一些經驗法則。 FFI的工作是滿足呼叫和被叫環境的假設。這通常是通過從一個到另一個複製來匹配兩種語言的數據佈局。 (這是RCpp的全部內容。)或者你可以非常幸運並且讓它們匹配。如果運行時環境相似或者在語言之間的邊界上移動的數據很小,這可能非常有效:與自函數調用相比,成本更高。由於這個原因,從Fortran調用C通常非常快。如果環境非常不同,則必須複製大型數據結構。副本消耗資源:內存和處理器週期。垃圾收集是環境差異的代名詞:獨立的收藏家很少會(永遠不會閱讀)合作。由於這個原因,R和Java(垃圾收集)都可能需要複製。如果您專門爲C語言編寫C++,則可以在RCpp結構中設置數據,以便不需要任何副本。
我會寫一些從C++開始的小測試,模仿必須通過界面移動的數據量。運行並計時以獲得間接費用。從這你可以做出真正的決定。
相關問題
- 1. 在java-Rcaller中調用R
- 2. 如何從RCaller java調用R腳本文件?
- 3. 如何從包中的R腳本(RCpp)調用C++函數?
- 4. VBS:從vb6,vb.net或C#調試腳本
- 5. WHMCS的Java腳本不調用或woking
- 6. 如何在rails中測試或調試我的遷移腳本?
- 7. PHP ORM的基準?或好的測試用例
- 8. 可用於C的基準測試庫#
- 9. 通過.sh腳本對java jar進行基準測試
- 10. 用於測試C和C++分配器的基準測試?
- 11. 調試R腳本
- 12. 使用StopWatch或類似的基準測試代碼
- 13. 從Java調用R - 更快的替代RCaller
- 14. 從java調用R腳本
- 15. 從C++調用R函數,使用Rcpp
- 16. 使用RInside/Rcpp從C++調用R圖
- 17. 關於測試或單元測試的一些基本問題
- 18. Java中的多線程基準測試
- 19. Junit整個或冗餘測試? (基本)
- 20. 突破Java調用或回調或類似的R
- 21. 貢獻R測試腳本
- 22. 基準測試/測試fastclick.js
- 23. SSD驅動器的TPC或其他數據庫基準測試
- 24. 如何基於python腳本對C程序進行基準測試?
- 25. 正規測試在C++或Java(統計)
- 26. 使用Python Popen對腳本進行基準測試?
- 27. c#,vb,java,python腳本測試環境?
- 28. 從Rcpp調用R函數
- 29. 如何從另一個測試腳本調用測試腳本?
- 30. 如何從Ruby C VM中加載的腳本需要基準測試?
回答良好基因。非常感謝在C++中保存數據並使用R的提示。這是我的問題可能與延遲有關的問題。使用Java的垃圾回收器,這也可能是一個真正的問題,因爲我從來沒有真正關心過它,所以也許C++是更明智的選擇。 –