I recently got some complaints of some of my customers that our webapplication has a huge memory leak. When refreshing a page, 2-6MB are added to the iexplore.exe process without ever releasing it again. So I started investigating the issue. I stripped all scripts from my page and only left the include tag for prototype in it. I noticed this caused the leak... just loading prototype ?!? You can easily reproduce it by trying Drip IE leak detection (http:// www.outofhanwell.com/ieleak/index.php?title=Main_Page), loading the scriptaculous homepage and clicking auto-refresh. You see in the graph that memory usage is going way up... Is this a known issue? Gr Yoeri
on 2008-06-12 16:09
on 2008-06-12 16:41
Thanks. Yes, this is a known issue. We took care of some leaks in recent commits (which are in a trunk as of now). It would be great if you could test latest revision for any issues. Best, kangax
on 2008-06-12 16:42
And here's a link to a trunk: http://github.com/sstephenson/prototype/tree/master - kangax
on 2008-06-12 21:48
No problem, I'll check it out first thing in the morning. I'll keep you informed Greets Yoeri
on 2008-06-13 10:47
kangax,
I tried out the trunk version from this morning.
I created 2 empty pages, prototype.trunk.html and
prototype.stable.html
Contents from a page (the same for both, except the H3 content):
----------------------------------------------------------------
<html>
<head>
<title></title>
<script src="prototype-stable.js"></script>
</head>
<body>
<h1>Prototype Stable 1.6.0.2 - Memory leak (DRIP)</h1>
</body>
</html>
Memory usage stats measured with DRIP0.5 (Internet Explorer
7.0.5730.13 in my case)
I added memory consumption after leaving the page because IE7 does a
bit more cleaning on page leave.
Prototype Stable 1.6.0.2
- DRIP Starting memory usage 5.890.048
- After first page load 9.760.768
- Autorefresh (50 times) 36.777.984
Leaving the page (navigate to about:blank) lowers the memory usage to
35.635.200
Prototype trunk (13 june 2008)
- DRIP Starting memory usage 5.890.048
- After first page load 9.805.824
- Autorefresh (50 times) 37.335.040
Leaving the page (navigate to about:blank) lowers the memory usage to
36.618.240
I must say that FF3 does a better job in memory usage when using
prototype. I don't know exactly how much it leaks in FF because I
haven't find a reliable tool to measure it.
Greets
Yoeri