On Jun 30, 2005, at 7:23 PM, Richard Gaskin wrote:

Dennis Brown wrote:

Hi all,
I have been using custom properties and custom properties sets to store results from different data analysis. This requires me to delete the properties of the last run before proceeding with the next run. There are many many automatically generated properties in the sets. I started to wonder what happens to the memory when I delete a key. The properties can no longer be seen because the key is gone, but what about the memory space. Does Rev garbage collect the space to recover it? I am concerned that I will create this huge legacy of garbage memory structures that will continue to grow as my program is run and saved over many months.
Can anyone verify that the program memory space will be recovered?


Another way to ask that question would be to pose it as its corollary: do we have evidence of memory leaks in Rev?

There may be, but it seems not too difficult to test: make a project that adds and deletes large sets of custom props and objects containing large amounts of data, check the memory usage before it starts, let it run all night, and check it again in the morning.

--
 Richard Gaskin
 Managing Editor, revJournal
 _______________________________________________________
 Rev tips, tutorials and more: http://www.revJournal.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Richard,

I did just that. I made a button with the following quickly thrown together script and ran it, stopping it every so often to save the stack and check the size. The good news is that the rather large set of properties and data (210MB) was created and deleted each pass (only took a few seconds per pass) resulted in not even a single byte change in stack size between passes. Thanks for the suggestion. Now I can sleep tonight!

BTW: The technique below is how I finally figured out how to have multi-dimensional arrays saved as properties that can be directly addressed by variables without using the do command. Really no difference between array[x,y] and array[x&"x"&y&"y"] or something similar as far as keys go --a unique key is generated for each element in either case.

Dennis

ON mouseUp
    local k,key,stuff
    set the textColor of me to "red"
    REPEAT 1000 times
        put "A nice line to repeat"&cr after stuff
    END repeat
    --
    REPEAT forever
set the customPropertySet of me to "Data" --also creates the set if it does not exist put the customKeys of me into k --delete the old set of preferences for "mySet"
        get empty
        REPEAT for each line key in k
            IF key contains "mySet" THEN next repeat
            put key&cr after it
        END repeat
        set the customKeys of me to it
        set the customPropertySet of me to empty
IF the mouseClick THEN if the clickLoc is within the rect of me THEN exit repeat
        --generate a lot of keys with a lot of data
        REPEAT with y=1 to 100 --Y values
            REPEAT with x=1 to 100 --X values
-- save the whole Stats for each point in the result matrix
                set the Data["mySet"&x&"x"&y&"y"] of me to stuff
            END repeat
        END repeat
        --        set the Data["Passes"] of me to 0
        get the Data["Passes"] of me
        add 1 to it
        set the Data["Passes"] of me to it
        put "Pass"&&it
    END repeat
    set the textColor of me to "black"
END mouseUp

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to