John Gerdeman on Sat, 30 Aug 2008 19:21:14 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Garbage Collection of Lists |
When running the following two Tests on build 2.3.2 to 2.4.1 the memory usage stays constant. When I run it on 2.4.2 (developement) the memory usage increases constantly. In both Tests lists of length X are created and for each position in that list we loop over the integers from 0 to X. In Test1 we do this by passing the list as parameter and copying it. In Test2 we use a global list, that is to be filled. (I am trying to find certain polynomials and the elements of the list represent its coefficients. In case you wondered what I was doing). Since I have no problem restricting myself to Version 2.3.2, the constant memory increase does not bother me. I was just curious to know, if this behaviour was intended or not. John Gerdeman
/* * Test Garbage Collection of Lists */ /*Define globals, that are used in the tests*/ length_=10; list2_=0; /* * Test 1 * * hand over the list as parameter and make a copy to work with. */ loop1(list_, k_)={ local(locList); locList=list_; if((k_<(length_+1)), for(X=1,length_, listput(locList,X,k_); loop1(locList, k_+1); ); ); } Test1(X)={ length_=X; list=listcreate(length_); loop1(list,1); } /* * Test 2 * * Use a global list, and fill it. */ loop2(k_)={ if((k_<(length_+1)), for(X=1,length_, listput(list2_,X,k_); loop2(k_+1); ); ); } Test2(X)={ length_=X; list2_=listcreate(length_); loop2(1); }