Some patches to improve the speed of R 2.11.1


Note: There's a bug of some sort in the patch-dollar patch. I'll update this page once I find and fix it.

Here is a collection of fifteen (used to be fourteen) patches (written September 2010) to speed up R. Some of these speed up particular functions; some reduce general interpretive overhead. The total speed improvement from these patches is substantial. It varies a lot from one R program to the next, of course, and probably from one machine to the next, but speedups of 25% can be expected in many programs, and sometimes much more (though sometimes less as well).

The fifteen patches work for revision r52822 of the development version of R, and also for release 2.11.1. These patches, along with some documentation, are in this tar file. NOTE: I found that there was a problem with the original version of patch-vec-subset. This version fixes that, and also splits out part of patch-vec-subset as patch-subscript, since this part (where the bug was) is independent of the rest.

To help anyone for whom the patch program fails, here is the log of what happens when I apply the patches to release 2.11.1.

I also wrote a number of timing test programs, which are in the tar file here.

Documentation on what each patch does is here (and also in "doc" in the tar file above).

NOTE: You shouldn't rely on the patched version for any important work until these patches have been tested more extensively.

Back to index of stuff on R
Back to Radford Neal's home page