f <- function() {
theta <- list(one=2.0, two=0.3, three=0.4)
x <- with(theta, c(one, two, three))
sample(x, 1)
}-roger
li dongfeng wrote:
Hi there,
I have just found that the ``attach'' function can get you into trouble when called many times. For example, you have a simulation routine called ``f()'', in which you used ``attach'' and no corresponding ``detach''. Then you call this function many times. You will find that the system performance get slower and slower, because you are making the R search path longer and longer. So be careful when you use attach in a function!
Below is a demonstration of this performance loss, you will see a linear growth in CPU time usage. Adding a ``detach()'' call at the end of ``f'' will get rid of this problem.
############################### f <- function(){ theta <- list(one=2.0, two=0.3, three=0.4) attach(theta) x <- c(one, two, three) sample(x, 1) }
test <- function(n=400){ timeu <- numeric(n) for(i in seq(n)){ timeu[i] <- system.time({ resi <- f() })[3] } plot(timeu) } test() ##############################
ããããããããLi Dongfeng [EMAIL PROTECTED] ãããããããããã2004-02-24
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
