[Javascript] Garbage Collection/ Freeing-up memory in Java script
Prashant Dahiya
prashant.er at gmail.com
Wed Sep 23 03:24:46 CDT 2009
Hi Andrew,
Thanks for the reply... I'll try your suggestions.
Regards,
P
On Wed, Sep 23, 2009 at 1:38 PM, Andrew Ip <andrewsyip at gmail.com> wrote:
> Hey Prashant,
>
> It seems like you're orphaning all the values that were put into your
> "valueList" array when you delete the reference to the "hash" object.
> Note that the delete operator in JavaScript basically just sets a
> variable's value to uninitialized. Try emptying out the valueList
> array first, then delete the empty valueList array, and finally
> deleting the "hash" object afterwards. You should see a difference.
>
> On another note, I'm not sure what you're trying to do with your
> Hashtable class, but JavaScript already allows you to use objects as
> associative arrays. Check out the following:
>
> http://www.quirksmode.org/js/associative.html
>
> -andrew
>
> On 2009-09-22, at 11:46 PM, Prashant Dahiya wrote:
>
> > Hi,
> >
> >
> >
> > I’m trying with this type of code (example):
> >
> >
> >
> > function Hashtable() {
> >
> >
> >
> > this.valueList = new Array();
> >
> >
> >
> > var somePrivateMethod = function() { return 1; }
> >
> >
> >
> > this.putValue = function(name, value) {
> >
> >
> >
> > this.valueList[name] = value;
> >
> >
> >
> > }
> >
> >
> >
> > }
> >
> >
> >
> >
> >
> >
> >
> > for (var i = 0; i < 100000; i++)
> >
> >
> >
> > {
> >
> >
> >
> > var hash = new Hashtable();
> >
> >
> >
> > hash.putValue("Key" + i, "Value" + i);
> >
> >
> >
> > delete hash;
> >
> >
> >
> > hash = null;
> >
> >
> >
> > }
> >
> >
> >
> > Running this script , it constantly increases the memory usage.
> > Although the
> > object "hash" is deleted in each iteration and although it is set to
> > null,
> > it does not seem to
> >
> > be removed from memory. Calling $.summary() after execution has
> > finished
> > shows more than 100000 functions still in memory. Running the script a
> > second time increases the memory again. More than 200000 functions
> > are in
> > memory after the second execution.
> >
> >
> >
> > Am I doing anything wrong here ?
> >
> >
> >
> > Any ideas, how I can get rid of the unreferenced memory? In fact,
> > AFAIK JS
> > engines do garbage collection automatically, any idea why does the
> > java
> > script engine does not release the memory immediately although it is
> > unreferenced?
> >
> > Is there a possibility to run the garbage collection of the java
> > script
> > engine ($.gc doesn’t helped much)?
> >
> >
> >
> > Regards,
> >
> > P
> > _______________________________________________
> > Javascript mailing list
> > Javascript at lists.evolt.org
> > http://lists.evolt.org/mailman/listinfo/javascript
>
> _______________________________________________
> Javascript mailing list
> Javascript at lists.evolt.org
> http://lists.evolt.org/mailman/listinfo/javascript
>
--
Thanks,
Prashant Dahiya
More information about the Javascript
mailing list