[thelist] JS memory leak detection?

VOLKAN ÖZÇELİK volkan.ozcelik at gmail.com
Sun Oct 23 05:33:04 CDT 2005


again a correction:

you do have a circular reference (an importance difference :) )

with a simplified version:

var x=obj;
x.onclick=function(evt){
    this.attribute="value";
};

"this" refers to variance "x" (hence a circular reference).

I got confused about the usage of the keyword "this". Sorry for the
misleading post.

However, I still suggest to benchmark your code and see if there is a
memory leak (may be with latest patches of IE the issue has been
solved for good, I don't know)

Cheers,
Volkan.


2005/10/23, VOLKAN ÖZÇELİK <volkan.ozcelik at gmail.com>:
> > so, i play with JS a lot, and i have a pretty good feel for writing
> > scripts, but i'm not so good with tracking down memory leaks...
> >
>
> As Jeff has said "welcome to the dark side" :) The next stage is
> washing your dishes with ajax (okay yet another bad joke).
>
> >
> > i've read these two articles, and am having a little trouble
> > determining if and how they can be applied:
> >
> > http://novemberborn.net/javascript/event-cache
> > http://laurens.vd.oever.nl/weblog/items2005/closures/
> >
>
> The memory leakage issue is not a myth. IE does experience it, but you
> will hardly recognize it if you are not attaching several hundereds of
> events on window.onload (and most of them create circular-references
> to each other.)
>
> imho, you usually do not generate a circular reference to a DOM node like
>
> myParagraph.darling=anotherParagraph;
> anotherParagraph.fiance=myParagraph;
>
> I don't generally create relations like this (to avoid a duel between
> another paragraph's fiance and darling -- okay no more jokes :) - I
> have a flu and my body is a bit over-heated, I guess that's because of
> it).
>
> In short, I did not observe any circular references in your code.
>
> > essentially, i am looking for some JS genius-level feedback on the
> > modified code i am using here and what i can do to optimize it:
> > http://algonquinstudios.com/js/flyoutnav.js
> >
>
> I had also implemented a registy mechanism somewhat similar to the
> referenced article:
>
> http://www.sarmal.com/sardalya/api/Object.aspx?id=EventRegistry
>
> and I use it none the less to be on the safe side (actually my cross
> browser EventHandler object
>
> http://www.sarmal.com/sardalya/api/Object.aspx?id=EventHandler
>
> handles the registry issues on the back end, so I do not need to think
> about it any more. Actually I have almost forgotten about it until
> this post)
>
> ---
>
> My humble suggestion:
> Optimization without observation is of no use. Open your task manager.
> Without closing the browser, try refreshing the page several thousand
> times (or use a meta refresh). note the delta in CPU an ram
> utilization.
> If after half an hour your CPU has reached near 100%, then you do have
> a leakage problem and need to implement a event registry of some sort.
>
> HTH,
> --
> Volkan Ozcelik
> +>Yep! I'm blogging! : http://www.volkanozcelik.com/volkanozcelik/blog/
> +> My projects/studies/trials/errors : http://www.sarmal.com/
>


--
Volkan Ozcelik
+>Yep! I'm blogging! : http://www.volkanozcelik.com/volkanozcelik/blog/
+> My projects/studies/trials/errors : http://www.sarmal.com/


More information about the thelist mailing list