gpt4 book ai didi

r - NumericVector 和 vector 之间是否存在性能差异?

转载 作者:行者123 更新时间:2023-12-04 22:45:44 24 4
gpt4 key购买 nike

假设一个人使用 NumericVector其他用途vector<double>在他们的 Rcpp 代码中。这两种用法之间是否存在显着差异,尤其是在性能方面?

最佳答案

一般来说,是的。

所有的 Rcpp(11) 类型都是围绕底层 SEXP 的“瘦代理对象”(我们在几个地方讨论过,谈话,幻灯片,我的书,...)对象。这意味着当您从 R 转到 C++ 以及从 C++ 返回到 R 时,不会生成任何副本。

使用标准 C++ 类型,如 std::vector<T>但是,通常需要副本。

所以你应该很容易看到一些简单的测试脚本的差异,如 N增加足够。

就个人而言,我通常喜欢将 C++/STL 类型“干净”地用于“感觉更像 C++”但仍然意识到性能损失的代码。通常这并不重要,因为 C++ 解决方案比您在纯 R 解决方案中替换的更快。

但你的问题是,如果一个主导另一个,另一个显然是肯定的。

关于r - NumericVector 和 vector<double> 之间是否存在性能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27031783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com