On Begin Test: 22MB
prototype_1_5_1_1 ( as available for download )
Ten 10MiB Windows Open: 109MB
Ten windows after all closed: 105MB
prototype_1_5_1_1 ( with patch ):
Ten 10MiB Windows Open: 109MB
Ten windows after all closed: 48MB
Same main window, once more:
Ten 10MiB Windows Open: 109MB
Ten windows after all closed: 41MB
Same main window, once more:
Ten 10MiB Windows Open: 110MB
Ten windows after all closed: 61MB
Same main window, once more:
Ten 10MiB Windows Open: 112MB
Ten windows after all closed: 45MB
_prototype_1_5_1_1 ( 1.6.0.2+):
Ten 10MiB Windows Open: 157MB
Ten windows after all closed: 109MB
Refreshing the window doesn't increase the memory for me, either. I
would guess this has more to do with how IE refreshes ( e.g. not very
deeply ). That is a hypothesis, not a statement; I have no idea how IE
deeply IE refreshes.
It looks like the 1.5 with patch is good; the fluctuations seem to
have more to do with IE not being aggressive with the clean up.
Watching the memory decrease on each window close, sometimes it would
drop 4MB, sometimes 12MB, and all numbers in between. If Drip is
seeing a real leak it is at least a small leak; not something that
refers back to the window object itself, causing NOTHING to be
unloaded. Ah, IE. Can I tell you how glad I am Sun won that MS J++
lawsuit? If there were a JVM with a GC this bad I'd... I'd take up
landscaping or something. Having NO GC is better than a GC that uses a
random number generator to collect objects.
The 1.6 version is collecting more than 1.5 was before the patch, but
there is still obviously something hanging out. I wonder if the
garbage collection you do in prototype is cleaning up all (well,
_nearly_ all) the objects created on init, but all the primary objects
that live in window scope are still living in memory because IE thinks
the window still exists? I don't know how many objects are created
after the script itself is done loading, so I'm pretty much in the
dark here. Hmm. And perhaps on a refresh, IE knows it can delete the
window? Or just rebuild the structure on the same window object it was
using previously, thus replacing the objects, not adding more.
I didn't have all that great of luck with Drip when I tried it on our
full app. Sometimes it showed hundreds of leaks, sometimes 4 or five,
and those would be like a frame object pointing to a blank.htm file.
Always for the same action. I don't take it personally. Drip is at
what, version 0.5? Impressive stuff.
Thanks again,
-
Geoff Granum
On May 3, 6:37 pm, John-David Dalton <[EMAIL PROTECTED]>
wrote:
> Thanks for the tests Geoff,
>
> I have uploaded them here:http://protolific.net/memory_leak_testcase.zip
>
> I patched the Prototyep 1.5.1 file.
> There is a second file named "_prototype_1_5_1.js" which is my latest
> git version compiles (so it is really "1.6.0.2+" with the patch in it
> is as well.
>
> I still get the memory leak with both patched versions.
> I think it has more to do with the number of nested frames than it
> does with String#escapeHTML. When I close the child window the memory
> usage drops down (I am using the windows task manager and looking at
> the IE process). When I refresh the child window the memory usage does
> not increase (this shows that maybe its not a leak).
>
> However, Drip suggests the the memery is never released.Wwhen
> refreshing the child window in drip it stair steps the memory usage.
> This may just be a Drip bug.
>
> In your 1 MB leak example you load Prototype js 4 times -> 1000kb/4 =
> 250kb per page instance.(you have a body page without Prototype as
> well that is propbably using up some of that memory as well)
>
> Can you try the tests that I have linked to and confirm that the
> memory spike is still an issue with the patches applied (maybe check
> the patch to see if it's applied write).
>
> - JDD
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/prototype-core?hl=en
-~----------~----~----~----~------~----~------~--~---