Rcpp简明入门
您的最后一段提到Rcpp的目的不是速度,这里的速度是指运行速度还是开发速度?如果Rcpp的目的不是速度,那它的目的是什么?
soga,也就是说Rcpp的优势在于:
1. 相较于使用纯R代码开发而言,由于运行的是C++代码,效率更高;
2. 相较于R API而言,不需要管理内存,虽然还是要写C++代码,但已经足够友善。
我认为,即使Rcpp比R API慢,也不会慢到哪里去,可能是链接的效率问题,而链接是一次性的,即使Rcpp链接花10s,R API花1s,情况也不会很糟糕;但是C++代码与R代码相比,如果无法将运算向量化,那么R的龟速将是灾难性的,因为无法向量化往往意味着大量的循环。所以,结合来看,Rcpp的优势之一依然是快。
1. 相较于使用纯R代码开发而言,由于运行的是C++代码,效率更高;
2. 相较于R API而言,不需要管理内存,虽然还是要写C++代码,但已经足够友善。
我认为,即使Rcpp比R API慢,也不会慢到哪里去,可能是链接的效率问题,而链接是一次性的,即使Rcpp链接花10s,R API花1s,情况也不会很糟糕;但是C++代码与R代码相比,如果无法将运算向量化,那么R的龟速将是灾难性的,因为无法向量化往往意味着大量的循环。所以,结合来看,Rcpp的优势之一依然是快。