On 4 December 2012 at 20:39, Yan Zhou wrote: | You cannot expect C++ to magically make your code faster. If speed is of | concern, you need profiling to find the bottleneck instead of blind guessing. I
Precisely. As I told Honglang just yesterday on this very list: Some general advice: when something complicated does not work, I generally try to restart with something simpler, and make sure it works. So decompose, and study smaller problems. | am not quite sure how to profile an Rcpp R program. Maybe someone else can | help. Same as with other compiled code: tell the compiler to insert the markers, then analyse the results. For gcc et al a profiler is built in, external tools such as Google Perftools (same kit that brings us tcmalloc etc) is there too and I have examples in my slides from the 'intro to hpc with R' talks I used to give. | But my intuition is that your program simply need that much time. The reason | that R is not much slower is perhaps the linear algebra operations took much of | the time, and that is as efficient in R as in C++. If you built R with an | optimized Blas, the difference may be even smaller. Rcpp (and RcppArmadillo) code links to what R is linked to, so you get the same BLAS/ | The bottom line is that C++ is no magic. The reason that it can be an order of | magnitude faster than R sometime is that the close to metal natural enable one | to take out some middleware. The computation that requires a bulk of time still | need the same time whatever language you use. | | And even there is something to improve in coding efficiency, that is not | something you can learn through just a few emails. This kind if thing take | time, practice and experience. Well put. Could not agree more. There is neither a free lunch, nor magic, but diligent work can get you a long way towards you goal. Nice case in point: Romain just these days shaving a few percentage points of his new hashing class in Rcpp's SVN. Dirk -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel