[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