Rprof causing R to crash
Uwe, I am unfortunately not able to upgrade to R 2.15.2 right now, but I have seen a similar problem with several older R versions. If you want to test with a shorter script, you can try the lines below. These provoke a crash from a fresh R session on my machine (R 2.15.1 Windows 7): Rprof() z = 1 for (i in 1:1e8) z = z+1/i This runs without problems without the call to Rprof(). I was far from using all my memory with this call, but you could also check with a higher number of loops in case you can run these lines and it is somehow memory related. Just for comparison, I tried 1e9 loops after a call to Rprof() on one of our Linux servers (R 2.14.0) without any problems. Jon
On 12-Dec-12 17:06, Uwe Ligges wrote:
On 12.12.2012 00:05, Marian Talbert wrote:
I'm trying to use Rprof() to identify bottlenecks and speed up a particullary slow section of code which reads in a portion of a tif file and compares each of the values to values of predictors used for model fitting. I've written up an example that anyone can run. Generally temp would be a section of a tif read into a data.frame and used later for other processing. The first portion which just records the time works in about 6 seconds the second part causes RGui to immediately close with no error or warning. Any advice on how to get Rprof to work or how to speed up this code would be greatly appreciated. I'm using Windows 7 (which might be my problem) and R version 2.15.0.
The problem is rather the R version: I cannot reproduce errors with a recent R. Uwe Ligges
CalcMESS<-function(tiff.entry,pred.vect){
f<-sum(pred.vect<tiff.entry)/length(pred.vect)*100
if(is.na(f)) return(NA)
if(f==0)
return((tiff.entry-min(pred.vect))/(max(pred.vect)-min(pred.vect))*100)
if(0<f & f<=50) return(2*f)
if(50<=f & f<100) return(2*(100-f))
if(f==100)
return((max(pred.vect)-tiff.entry)/(max(pred.vect)-min(pred.vect))*100)
else return(NA)
}
train.dat <-
data.frame(a=runif(200),b=runif(200),c=runif(200),d=runif(200))
temp <-
data.frame(a=runif(130000),b=runif(130000),c=runif(130000),d=runif(130000))
pred.rng<-temp
vnames.final.mod <- names(train.dat)
nvars.final <- length(vnames.final.mod)
start.time<-Sys.time()
for(k in 1:nvars.final){
pred.range<-train.dat[,match(vnames.final.mod[k],names(train.dat))]
pred.rng[,k]<-mapply(CalcMESS,tiff.entry=temp[,match(vnames.final.mod[k],names(temp))],MoreArgs=list(pred.vect=pred.range))
}
Sys.time()-start.time
Rprof("C:\\temp\\mapply.out")
for(k in 1:nvars.final){
pred.range<-train.dat[,match(vnames.final.mod[k],names(train.dat))]
pred.rng[,k]<-mapply(CalcMESS,tiff.entry=temp[,match(vnames.final.mod[k],names(temp))],MoreArgs=list(pred.vect=pred.range))
}
Rprof(NULL)
--
View this message in context:
http://r.789695.n4.nabble.com/Rprof-causing-R-to-crash-tp4652846.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at 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.
______________________________________________ R-help at 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.