On Thu, Aug 2, 2012 at 8:37 PM, Ben Buckman <thebucks...@gmail.com> wrote:
> Suppose I have a very large array in memory and want to clear it after it's
> no longer needed. This snippet replicates the scenario:
>
> console.log("Memory usage initial:", process.memoryUsage());
>
> var hugeStack = [], i, obj;
>
> function longRandomString(){
>   return Math.random().toString(7) + Math.random().toString(7) +
> Math.random().toString(7) + Math.random().toString(7);
> }
>
> for (i = 0; i < 1000; i++) {
>   obj = {
>     a: longRandomString(),
>     b: longRandomString(),
>     c: longRandomString()
>   };
>   hugeStack.push(obj);
> }
>
> console.log("Memory usage with full stack:", process.memoryUsage());
>
> hugeStack = [];
> obj = null;
> delete hugeStack, obj;
>
> console.log("Memory usage with cleared stack:", process.memoryUsage());
>
>
> I would expect the last memoryUsage() report to drop significantly from the
> 2nd one, close to the initial level - but it just keeps going up.
> What's the proper way to clear up this memory usage?

Make sure all references to the array are gone and V8 will sooner or
later reclaim the memory. Don't look at RSS or virtual memory size,
they're hardly relevant for managed applications.

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to