I wonder wehter someone in Caliper could shred some light into memory
mangement and garbage colleciton in GISDK
I am bumping into memory issues in a macro that handles very large
(millions of records) multidimensional arrays.
My initial macro had a number of those arrays defined, so I splitted the
code and use the vectors one at a time in separate macros. The memory
issues still persist
Before rewriting my code to a disk-based data management as opposed to using
memory arrays. I would very much appreciate if you could provide some input
on the folloiwng questions:
- Does GISDK frees up all the memory macro uses (for exmaple, arrays
that are only used within the macro and not passed back as ouput) once the
macro is terminated?
- If so, when does this happen? immediately after the macro is
finished? or randomly?
- If I have a large array in a macro, and I set it to null before
leaving the macro, does that liberates memory immediately?
- Does an expression like myArray = myArray + {newvalue} when used
recursively imposes a toll on memory usage? (I know that Dim myArray[n] is
more efficient, but often times I ignore the dimension the array will end up
having)
- Are there any specific guidliness or reccomendations for using large
arrays in the DK?
Thanks
--
Armando Scalise