[Rd] Modifying R_CheckStack for a speed increase

Byron Ellis byron.ellis at gmail.com
Wed Aug 29 22:58:35 CEST 2007


Alternatively, if you actually wanted to keep the 0.95 you could use

usage > R_CStackLimit - (R_CStackLimit >> 4)

and probably get close enough to 0.95 as it makes no difference or go
with 5 and get something more like 97%. At any rate, you'd avoid
floating point.

On 8/29/07, Stephen Milborrow <milbo at sonic.net> wrote:
> Greetings R developers,
>
> R will run a little faster when executing "pure R" code if the function
> R_CheckStack() is modified.
>
> With the modification, the following code for example runs 15% faster
> (compared to a virgin R-2.5.1 on my Windows XP machine):
>
>       N = 1e7
>       foo <- function(x)
>       {
>            for (i in 1:N)
>                 x <- x + 1
>           x
>       }
>       foo(0)
>
> The crux of the modification is to change the following line in
> R_CheckStack()
>
>       if(R_CStackLimit != -1 && usage > 0.95 * R_CStackLimit) {...
>
> to
>
>       if(usage > R_CStackLen) { ...
>
> Details and modified sources can be found at
> ftp://ftp.sonic.net/pub/users/milbo.
>
> Regards,
> Stephen
>
> http://milbo.users.sonic.net
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>


-- 
Byron Ellis (byron.ellis at gmail.com)
"Oook" -- The Librarian



More information about the R-devel mailing list