I hazard to say that the author of that blog post isn't using the time he saved from writing his analyses in C very efficiently. I wonder how long it took him to write it in C in the first place, even to setup the testing of C against R, or to write the blog post.
He didn't say. Jeff Armstrong, Whit wrote on 01/09/2008 09:49 AM: > fisher.test seems to use the .C calling convention in a couple of > different places. > > for example: > > tmp <- .C("fisher_sim", as.integer(nr), as.integer(nc), > as.integer(sr), as.integer(sc), as.integer(n), > as.integer(B), integer(nr * nc), double(n + 1), > integer(nc), results = double(B), PACKAGE = > "stats")$results > > > perhaps some R experts on the list can tell us whether there is > significant overhead to .C vs .Call. > > Does .C really duplicate its arguments? What does RObjToCPtr do? > > > (line 1682.. in dotcode.c) > > /* Convert the arguments for use in foreign */ > /* function calls. Note that we copy twice */ > /* once here, on the way into the call, and */ > /* once below on the way out. */ > cargs = (void**)R_alloc(nargs, sizeof(void*)); > nargs = 0; > for(pargs = args ; pargs != R_NilValue; pargs = CDR(pargs)) { > #ifdef THROW_REGISTRATION_TYPE_ERROR > if(checkTypes && > !comparePrimitiveTypes(checkTypes[nargs], CAR(pargs), dup)) { > /* We can loop over all the arguments and report all the > > erroneous ones, but then we would also want to avoid > > the conversions. Also, in the future, we may just > > attempt to coerce the value to the appropriate > > type. This is why we pass the checkTypes[nargs] value > > to RObjToCPtr(). We just have to sort out the ability > > to return the correct value which is complicated by > > dup, etc. */ > errorcall(call, _("Wrong type for argument %d in call to > %s"), > nargs+1, symName); > } > #endif > cargs[nargs] = RObjToCPtr(CAR(pargs), naok, dup, nargs + 1, > which, symName, argConverters + nargs, > checkTypes ? checkTypes[nargs] : 0, > encname); > #ifdef R_MEMORY_PROFILING > if (TRACE(CAR(pargs)) && dup) > memtrace_report(CAR(pargs), cargs[nargs]); > #endif > nargs++; > } > > Thanks, > Whit > > >> -----Original Message----- >> From: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] On Behalf Of Gustaf Rydevik >> Sent: Wednesday, January 09, 2008 10:25 AM >> To: r-help@r-project.org >> Subject: [R] An "R is slow"-article >> >> Hi all, >> >> Reading the wikipedia page on R, I stumbled across the following: >> http://fluff.info/blog/arch/00000172.htm >> >> It does seem interesting that the C execution is that much >> slower from R than from a native C program. Could any of the >> more technically knowledgeable people explain why this is so? >> >> The author also have some thought-provoking opinions on R >> being no-good and that you should write everything in C >> instead (mainly because R is slow and too good at graphics, >> encouraging data snooping). See >> http://fluff.info/blog/arch/00000041.htm >> While I don't agree (granted, I can't really write C), it >> was interesting to read something from a very different >> perspective than I'm used to. >> >> Best regards, >> >> Gustaf >> >> _____ >> Department of Epidemiology, >> Swedish Institute for Infectious Disease Control work email: >> gustaf.rydevik at smi dot ki dot se skype:gustaf_rydevik >> >> ______________________________________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> > > > > > This e-mail message is intended only for the named recipient(s) above. It may > contain confidential information. If you are not the intended recipient you > are hereby notified that any dissemination, distribution or copying of this > e-mail and any attachment(s) is strictly prohibited. If you have received > this e-mail in error, please immediately notify the sender by replying to > this e-mail and delete the message and any attachment(s) from your system. > Thank you. > > > > ------------------------------------------------------------------------ > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- http://biostat.mc.vanderbilt.edu/JeffreyHorner ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.