[Rcpp-devel] Sugar seems slower than Rcpp.
Cedric Ginestet
c.ginestet05 at googlemail.com
Tue Jan 4 16:14:35 CET 2011
Happy new year to everyone,
I have made a very straightforward comparison of the performance of
standard R, Rcpp function and sugar, and found that the latter produces
the poorest performance. Let me know what you think and how I could
improve such performance assessment.
###################################################
Summing1 <- cxxfunction(signature(x="numeric"), '
NumericVector xV(x);
double out = sum(xV);
return wrap(out);
',plugin="Rcpp")
Summing2 <- cxxfunction(signature(x="numeric"), '
NumericVector xV(x);
double out = 0.0;
for(int i=0; i<xV.size(); i++) out += xV[i];
return wrap(out);
',plugin="Rcpp")
###################################################
# Results.
n <- 1000000; x <- rnorm(n)
Summing1(x); Summing2(x); sum(x)
#######################
gives:
[1] -396.6129
[1] -396.6129
[1] -396.6129
###################################################
# Time.
system.time(Summing1(x)); # Sugar
system.time(Summing2(x)); # Rcpp
system.time(sum(x)); # R-base
###################
> system.time(Summing1(x));
user system elapsed
0.016 0.000 0.016
> system.time(Summing2(x));
user system elapsed
0.008 0.000 0.011
> system.time(sum(x));
user system elapsed
0.000 0.000 0.003
Sugar appears to be the slowest! What about Rcpp basic loop? Why isn't
as fast as the standard sum() in R-base?
Cheers,
Cedric
--
Cedric Ginestet
Centre for Neuroimaging Sciences (L3.04)
NIHR Biomedical Research Centre
Institute of Psychiatry, Box P089
Kings College London
De Crespigny Park
London
SE5 8AF
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20110104/570a4bf9/attachment.htm>
More information about the Rcpp-devel
mailing list